From a5d94a4b8b87a6357fa22d0629bcf2adeb977184 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Mon, 6 May 2024 11:11:39 +0300 Subject: [PATCH 001/137] metadata: Fix cargo clippy (#1574) * metadata: Fix cargo clippy Signed-off-by: Alexandru Vasile * subxt/backend: Fix clone clippy Signed-off-by: Alexandru Vasile * tests: Use clone into Signed-off-by: Alexandru Vasile --------- Signed-off-by: Alexandru Vasile --- metadata/src/from_into/v14.rs | 2 +- subxt/src/backend/unstable/follow_stream_driver.rs | 5 +++-- testing/ui-tests/src/utils/metadata_test_runner.rs | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/metadata/src/from_into/v14.rs b/metadata/src/from_into/v14.rs index 989542ab56..5c00d24e7c 100644 --- a/metadata/src/from_into/v14.rs +++ b/metadata/src/from_into/v14.rs @@ -344,7 +344,7 @@ fn generate_outer_enums( let Some(last) = call_path.last_mut() else { return Err(TryFromError::InvalidTypePath("RuntimeCall".into())); }; - *last = "RuntimeError".to_owned(); + "RuntimeError".clone_into(last); generate_outer_error_enum_type(metadata, call_path) }; diff --git a/subxt/src/backend/unstable/follow_stream_driver.rs b/subxt/src/backend/unstable/follow_stream_driver.rs index e85336c314..61aca96dc9 100644 --- a/subxt/src/backend/unstable/follow_stream_driver.rs +++ b/subxt/src/backend/unstable/follow_stream_driver.rs @@ -267,8 +267,9 @@ impl Shared { shared.seen_runtime_events.clear(); - init_message.finalized_block_hashes = - finalized_ev.finalized_block_hashes.clone(); + init_message + .finalized_block_hashes + .clone_from(&finalized_ev.finalized_block_hashes); if let Some(runtime_ev) = newest_runtime { init_message.finalized_block_runtime = Some(runtime_ev); diff --git a/testing/ui-tests/src/utils/metadata_test_runner.rs b/testing/ui-tests/src/utils/metadata_test_runner.rs index df87ef3836..a900873f3e 100644 --- a/testing/ui-tests/src/utils/metadata_test_runner.rs +++ b/testing/ui-tests/src/utils/metadata_test_runner.rs @@ -70,7 +70,7 @@ impl MetadataTestRunnerCaseBuilder { /// Set the test name. pub fn name(mut self, name: impl AsRef) -> Self { - self.name = name.as_ref().to_owned(); + name.as_ref().clone_into(&mut self.name); self } From 65e0a1aa14530ceacd6928a6a520a1aa280b6444 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 10:46:45 +0200 Subject: [PATCH 002/137] build(deps): bump jsonrpsee from 0.22.4 to 0.22.5 (#1570) Bumps [jsonrpsee](https://github.com/paritytech/jsonrpsee) from 0.22.4 to 0.22.5. - [Release notes](https://github.com/paritytech/jsonrpsee/releases) - [Changelog](https://github.com/paritytech/jsonrpsee/blob/v0.22.5/CHANGELOG.md) - [Commits](https://github.com/paritytech/jsonrpsee/compare/v0.22.4...v0.22.5) --- updated-dependencies: - dependency-name: jsonrpsee dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> --- Cargo.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ae4a2323ef..004ab0dcd7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2381,9 +2381,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4b0e68d9af1f066c06d6e2397583795b912d78537d7d907c561e82c13d69fa1" +checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2394,9 +2394,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92f254f56af1ae84815b9b1325094743dcf05b92abb5e94da2e81a35cff0cada" +checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" dependencies = [ "futures-channel", "futures-util", @@ -2417,9 +2417,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "274d68152c24aa78977243bb56f28d7946e6aa309945b37d33174a3f92d89a3a" +checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" dependencies = [ "anyhow", "async-trait", @@ -2441,9 +2441,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac13bc1e44cd00448a5ff485824a128629c945f02077804cb659c07a0ba41395" +checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" dependencies = [ "async-trait", "hyper", @@ -2461,9 +2461,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dc828e537868d6b12bbb07ec20324909a22ced6efca0057c825c3e1126b2c6d" +checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" dependencies = [ "anyhow", "beef", @@ -2474,9 +2474,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.22.4" +version = "0.22.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32f00abe918bf34b785f87459b9205790e5361a3f7437adb50e928dc243f27eb" +checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" dependencies = [ "http", "jsonrpsee-client-transport", @@ -2881,7 +2881,7 @@ checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", "rand", - "rand_core 0.6.4", + "rand_core 0.5.1", "serde", "unicode-normalization", ] From 931102ace7d7c32938af8e77f02fe6226b5f7951 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 10:47:07 +0200 Subject: [PATCH 003/137] build(deps): bump tokio-util from 0.7.10 to 0.7.11 (#1573) Bumps [tokio-util](https://github.com/tokio-rs/tokio) from 0.7.10 to 0.7.11. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-util-0.7.10...tokio-util-0.7.11) --- updated-dependencies: - dependency-name: tokio-util dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> --- Cargo.lock | 5 ++--- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 004ab0dcd7..6369771c3b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5158,9 +5158,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", @@ -5168,7 +5168,6 @@ dependencies = [ "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 1437a4509e..7b8adf9760 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -130,7 +130,7 @@ js-sys = "0.3.69" wasm-bindgen-futures = "0.4.42" futures-timer = "3" instant = { version = "0.1.12", default-features = false } -tokio-util = "0.7.10" +tokio-util = "0.7.11" # Substrate crates: sp-core = { version = "31.0.0", default-features = false } From 44a6e05a7adfce93c75d702c6ca468073f956cce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 10:47:39 +0200 Subject: [PATCH 004/137] build(deps): bump serde from 1.0.199 to 1.0.200 (#1572) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.199 to 1.0.200. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.199...v1.0.200) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6369771c3b..45e4f7046f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3997,9 +3997,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.199" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" +checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" dependencies = [ "serde_derive", ] @@ -4015,9 +4015,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.199" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" +checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 7b8adf9760..cb462c8c9d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -97,7 +97,7 @@ scale-decode = { version = "0.12.0", default-features = false } scale-encode = { version = "0.7.0", default-features = false } scale-typegen = "0.5.0" scale-typegen-description = "0.5.0" -serde = { version = "1.0.199", default-features = false, features = ["derive"] } +serde = { version = "1.0.200", default-features = false, features = ["derive"] } serde_json = { version = "1.0.116", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.59" From f034ac486cb04667934a5399e564b8e877e96c5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 10:47:57 +0200 Subject: [PATCH 005/137] build(deps): bump trybuild from 1.0.91 to 1.0.93 (#1571) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.91 to 1.0.93. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.91...1.0.93) --- updated-dependencies: - dependency-name: trybuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> --- Cargo.lock | 5 ++--- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 45e4f7046f..242ea57ebd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5405,12 +5405,11 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.91" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad7eb6319ebadebca3dacf1f85a93bc54b73dd81b9036795f73de7ddfe27d5a" +checksum = "2a0e5d82932dfbf36df38de5df0cfe846d13430b3ae3fdc48b2e91ed692c8df7" dependencies = [ "glob 0.3.1", - "once_cell", "serde", "serde_derive", "serde_json", diff --git a/Cargo.toml b/Cargo.toml index cb462c8c9d..127079933c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -105,7 +105,7 @@ tokio = { version = "1.37", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" -trybuild = "1.0.91" +trybuild = "1.0.93" url = "2.5.0" wabt = "0.10.0" wasm-bindgen-test = "0.3.24" From bec896d91ac2022a94748e1cc191f9fb697e2c48 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Wed, 8 May 2024 15:12:54 +0200 Subject: [PATCH 006/137] rpc: add full support reconnecting rpc client (#1505) * add simple reconnecting rpc client * initial retryable calls * add reconnecting backend * add reconnecting example for unstable backend * add todo what isn't working * FollowStream: restart on reconn * naive fix: fetch sub_id in stream_headers * cleanup * remove resubscribe APIs * cleanup and remove many wrapper streams * remove retry backend * legacy rpc: make it retryable * unstable rpc: make it retryable * fix nits * support wasm as well * remove deadcode * address grumbles * revert rpc methods * don't create a subscription per block * get rid off retry logic in subxt rpc * Update subxt/Cargo.toml * Update subxt/src/backend/legacy/mod.rs * Update subxt/src/backend/legacy/mod.rs * remove outdated comments * fix bad merge * Fix reconnecting RPC client and update dependencies * add back retry logic and remove `finito` * fix nits * cleanup * add hack for race when reconnecting * backend: emit Stop event DisconnectWillRecoonect * merge reconnecting client examples * add fn retry_stream * cleanup * add all features from reconnecting-rpc-client * fix build * remove needless retry for fetch_storage * StorageFetchDescendantKeysStream handle disconnect err * dont retry transactions * fetch subscription ID from FollowStreamMsg * fix nits * Update subxt/src/backend/legacy/mod.rs * Update subxt/src/backend/legacy/mod.rs * add reconn to StorageItems stream * StorageFetchDescendantKeysStreamchore: retry storage call * RetryStream: emit DisconnectWillReconnect msg * runtime subscriptions ignore DisconnectWillReconn * Update subxt/examples/setup_reconnecting_rpc_client.rs * Update subxt/src/client/online_client.rs * Update subxt/src/client/online_client.rs * Add custom stream wrapper for finalized blocks * add missing retry block * clippy * clippy again * cleanup * remove duplicate logic * fix more grumbles * Update subxt/examples/setup_reconnecting_rpc_client.rs Co-authored-by: James Wilson * simplify the example * remove pin-project dep * remove duplicate retry logic * remove extra code * specify trait bounds for retry api * simplify the example * fix weird Poll::Pending return * fix nit in poll impl * remove needless paths * make retry_stream pub and add doc examples * Update subxt/src/backend/utils.rs --------- Co-authored-by: James Wilson --- Cargo.lock | 13 + subxt/Cargo.toml | 12 +- subxt/examples/reconnecting_rpc_client.rs | 73 ---- .../examples/setup_reconnecting_rpc_client.rs | 102 ++++++ subxt/src/backend/legacy/mod.rs | 234 ++++++++----- subxt/src/backend/mod.rs | 1 + subxt/src/backend/rpc/mod.rs | 4 +- .../rpc/reconnecting_jsonrpsee_impl.rs | 52 --- .../backend/rpc/reconnecting_rpc_client.rs | 270 +++++++++++++++ subxt/src/backend/unstable/follow_stream.rs | 12 + .../backend/unstable/follow_stream_driver.rs | 199 ++++++++++- .../backend/unstable/follow_stream_unpin.rs | 2 +- subxt/src/backend/unstable/mod.rs | 322 ++++++++++-------- subxt/src/backend/unstable/storage_items.rs | 5 + subxt/src/backend/utils.rs | 271 +++++++++++++++ subxt/src/blocks/blocks_client.rs | 12 +- subxt/src/client/online_client.rs | 3 +- subxt/src/error/mod.rs | 5 + subxt/src/tx/tx_progress.rs | 2 +- 19 files changed, 1231 insertions(+), 363 deletions(-) delete mode 100644 subxt/examples/reconnecting_rpc_client.rs create mode 100644 subxt/examples/setup_reconnecting_rpc_client.rs delete mode 100644 subxt/src/backend/rpc/reconnecting_jsonrpsee_impl.rs create mode 100644 subxt/src/backend/rpc/reconnecting_rpc_client.rs create mode 100644 subxt/src/backend/utils.rs diff --git a/Cargo.lock b/Cargo.lock index 242ea57ebd..69c19ddd6d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2389,6 +2389,7 @@ dependencies = [ "jsonrpsee-core", "jsonrpsee-http-client", "jsonrpsee-types", + "jsonrpsee-wasm-client", "jsonrpsee-ws-client", ] @@ -2472,6 +2473,17 @@ dependencies = [ "thiserror", ] +[[package]] +name = "jsonrpsee-wasm-client" +version = "0.22.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f448d8eacd945cc17b6c0b42c361531ca36a962ee186342a97cdb8fca679cd77" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + [[package]] name = "jsonrpsee-ws-client" version = "0.22.5" @@ -3397,6 +3409,7 @@ dependencies = [ "thiserror", "tokio", "tracing", + "wasm-bindgen-futures", ] [[package]] diff --git a/subxt/Cargo.toml b/subxt/Cargo.toml index 698e85a450..5229fce56b 100644 --- a/subxt/Cargo.toml +++ b/subxt/Cargo.toml @@ -28,7 +28,8 @@ native = [ "jsonrpsee?/async-client", "jsonrpsee?/client-ws-transport-native-tls", "subxt-lightclient?/native", - "tokio-util" + "tokio-util", + "reconnecting-jsonrpsee-ws-client?/native", ] # Enable this for web/wasm builds. @@ -39,7 +40,8 @@ web = [ "getrandom/js", "subxt-lightclient?/web", "subxt-macro/web", - "instant/wasm-bindgen" + "instant/wasm-bindgen", + "reconnecting-jsonrpsee-ws-client?/web", ] # Enable this to use the reconnecting rpc client @@ -99,7 +101,7 @@ subxt-metadata = { workspace = true, features = ["std"] } subxt-lightclient = { workspace = true, optional = true, default-features = false } # Reconnecting jsonrpc ws client -reconnecting-jsonrpsee-ws-client = { version = "0.4", optional = true } +reconnecting-jsonrpsee-ws-client = { version = "0.4", optional = true, default-features = false } # For parsing urls to disallow insecure schemes url = { workspace = true } @@ -137,8 +139,8 @@ path = "examples/light_client_local_node.rs" required-features = ["unstable-light-client", "jsonrpsee", "native"] [[example]] -name = "reconnecting_rpc_client" -path = "examples/reconnecting_rpc_client.rs" +name = "setup_reconnecting_rpc_client" +path = "examples/setup_reconnecting_rpc_client.rs" required-features = ["unstable-reconnecting-rpc-client"] [package.metadata.docs.rs] diff --git a/subxt/examples/reconnecting_rpc_client.rs b/subxt/examples/reconnecting_rpc_client.rs deleted file mode 100644 index b21be899f6..0000000000 --- a/subxt/examples/reconnecting_rpc_client.rs +++ /dev/null @@ -1,73 +0,0 @@ -//! Example to utilize the `reconnecting rpc client` in subxt -//! which hidden behind behind `--feature unstable-reconnecting-rpc-client` -//! -//! To utilize full logs from the RPC client use: -//! `RUST_LOG="jsonrpsee=trace,reconnecting_jsonrpsee_ws_client=trace"` - -#![allow(missing_docs)] - -use std::time::Duration; - -use subxt::backend::rpc::reconnecting_rpc_client::{Client, ExponentialBackoff, PingConfig}; -use subxt::backend::rpc::RpcClient; -use subxt::error::{Error, RpcError}; -use subxt::{OnlineClient, PolkadotConfig}; - -// Generate an interface that we can use from the node's metadata. -#[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata_small.scale")] -pub mod polkadot {} - -#[tokio::main] -async fn main() -> Result<(), Box> { - tracing_subscriber::fmt::init(); - - // Create a new client with with a reconnecting RPC client. - let rpc = Client::builder() - // Reconnect with exponential backoff - // - // This API is "iterator-like" so one could limit it to only - // reconnect x times and then quit. - .retry_policy(ExponentialBackoff::from_millis(100).max_delay(Duration::from_secs(10))) - // Send period WebSocket pings/pongs every 6th second and if it's not ACK:ed in 30 seconds - // then disconnect. - // - // This is just a way to ensure that the connection isn't idle if no message is sent that often - .enable_ws_ping( - PingConfig::new() - .ping_interval(Duration::from_secs(6)) - .inactive_limit(Duration::from_secs(30)), - ) - // There are other configurations as well that can be found here: - // - .build("ws://localhost:9944".to_string()) - .await?; - - let api: OnlineClient = - OnlineClient::from_rpc_client(RpcClient::new(rpc.clone())).await?; - - // Subscribe to all finalized blocks: - let mut blocks_sub = api.blocks().subscribe_finalized().await?; - - // For each block, print a bunch of information about it: - while let Some(block) = blocks_sub.next().await { - let block = match block { - Ok(b) => b, - Err(Error::Rpc(RpcError::DisconnectedWillReconnect(err))) => { - println!("{err}"); - continue; - } - Err(e) => { - return Err(e.into()); - } - }; - - let block_number = block.header().number; - let block_hash = block.hash(); - - println!("Block #{block_number} ({block_hash})"); - } - - println!("RPC client reconnected `{}` times", rpc.reconnect_count()); - - Ok(()) -} diff --git a/subxt/examples/setup_reconnecting_rpc_client.rs b/subxt/examples/setup_reconnecting_rpc_client.rs new file mode 100644 index 0000000000..c393f2cffa --- /dev/null +++ b/subxt/examples/setup_reconnecting_rpc_client.rs @@ -0,0 +1,102 @@ +//! Example to utilize the `reconnecting rpc client` in subxt +//! which hidden behind behind `--feature unstable-reconnecting-rpc-client` +//! +//! To utilize full logs from the RPC client use: +//! `RUST_LOG="jsonrpsee=trace,reconnecting_jsonrpsee_ws_client=trace"` + +#![allow(missing_docs)] + +use std::time::Duration; + +use futures::StreamExt; +use subxt::backend::rpc::reconnecting_rpc_client::{Client, ExponentialBackoff}; +use subxt::{OnlineClient, PolkadotConfig}; + +// Generate an interface that we can use from the node's metadata. +#[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata_small.scale")] +pub mod polkadot {} + +#[tokio::main] +async fn main() -> Result<(), Box> { + tracing_subscriber::fmt::init(); + + // Create a new client with with a reconnecting RPC client. + let rpc = Client::builder() + // Reconnect with exponential backoff + // + // This API is "iterator-like" and we use `take` to limit the number of retries. + .retry_policy( + ExponentialBackoff::from_millis(100) + .max_delay(Duration::from_secs(10)) + .take(3), + ) + // There are other configurations as well that can be found at [`reconnecting_rpc_client::ClientBuilder`]. + .build("ws://localhost:9944".to_string()) + .await?; + + // If you want to use the unstable backend with the reconnecting RPC client, you can do so like this: + // + // ``` + // use subxt::backend::unstable::UnstableBackend; + // use subxt::OnlineClient; + // + // let (backend, mut driver) = UnstableBackend::builder().build(RpcClient::new(rpc.clone())); + // tokio::spawn(async move { + // while let Some(val) = driver.next().await { + // if let Err(e) = val { + // eprintln!("Error driving unstable backend: {e}; terminating client"); + // } + // } + // }); + // let api: OnlineClient = OnlineClient::from_backend(Arc::new(backend)).await?; + // ``` + + let api: OnlineClient = OnlineClient::from_rpc_client(rpc.clone()).await?; + + // Optionally print if the RPC client reconnects. + let rpc2 = rpc.clone(); + tokio::spawn(async move { + loop { + // The connection was lost and the client is trying to reconnect. + let reconnected = rpc2.reconnect_initiated().await; + let now = std::time::Instant::now(); + // The connection was re-established. + reconnected.await; + println!( + "RPC client reconnection took `{}s`", + now.elapsed().as_secs() + ); + } + }); + + // Run for at most 100 blocks and print a bunch of information about it. + // + // The subscription is automatically re-started when the RPC client has reconnected. + // You can test that by stopping the polkadot node and restarting it. + let mut blocks_sub = api.blocks().subscribe_finalized().await?.take(100); + + while let Some(block) = blocks_sub.next().await { + let block = match block { + Ok(b) => b, + Err(e) => { + // This can only happen on the legacy backend and the unstable backend + // will handle this internally. + if e.is_disconnected_will_reconnect() { + println!("The RPC connection was lost and we may have missed a few blocks"); + continue; + } + + return Err(e.into()); + } + }; + + let block_number = block.number(); + let block_hash = block.hash(); + + println!("Block #{block_number} ({block_hash})"); + } + + println!("RPC client reconnected `{}` times", rpc.reconnect_count()); + + Ok(()) +} diff --git a/subxt/src/backend/legacy/mod.rs b/subxt/src/backend/legacy/mod.rs index 425cf0c8bf..44fd606f99 100644 --- a/subxt/src/backend/legacy/mod.rs +++ b/subxt/src/backend/legacy/mod.rs @@ -8,10 +8,12 @@ pub mod rpc_methods; use self::rpc_methods::TransactionStatus as RpcTransactionStatus; +use crate::backend::utils::{retry, retry_stream}; use crate::backend::{ rpc::RpcClient, Backend, BlockRef, RuntimeVersion, StorageResponse, StreamOf, StreamOfResults, TransactionStatus, }; +use crate::error::RpcError; use crate::{config::Header, Config, Error}; use async_trait::async_trait; use futures::{future, future::Either, stream, Future, FutureExt, Stream, StreamExt}; @@ -62,12 +64,21 @@ impl LegacyBackendBuilder { } /// The legacy backend. -#[derive(Debug, Clone)] +#[derive(Debug)] pub struct LegacyBackend { storage_page_size: u32, methods: LegacyRpcMethods, } +impl Clone for LegacyBackend { + fn clone(&self) -> LegacyBackend { + LegacyBackend { + storage_page_size: self.storage_page_size, + methods: self.methods.clone(), + } + } +} + impl LegacyBackend { /// Configure and construct an [`LegacyBackend`]. pub fn builder() -> LegacyBackendBuilder { @@ -84,24 +95,28 @@ impl Backend for LegacyBackend { keys: Vec>, at: T::Hash, ) -> Result, Error> { - let methods = self.methods.clone(); + retry(|| async { + let keys = keys.clone(); + let methods = self.methods.clone(); - // For each key, return it + a future to get the result. - let iter = keys.into_iter().map(move |key| { - let methods = methods.clone(); - async move { - let res = methods.state_get_storage(&key, Some(at)).await?; - Ok(res.map(|value| StorageResponse { key, value })) - } - }); + // For each key, return it + a future to get the result. + let iter = keys.into_iter().map(move |key| { + let methods = methods.clone(); + async move { + let res = methods.state_get_storage(&key, Some(at)).await?; + Ok(res.map(|value| StorageResponse { key, value })) + } + }); - let s = stream::iter(iter) - // Resolve the future - .then(|fut| fut) - // Filter any Options out (ie if we didn't find a value at some key we return nothing for it). - .filter_map(|r| future::ready(r.transpose())); + let s = stream::iter(iter) + // Resolve the future + .then(|fut| fut) + // Filter any Options out (ie if we didn't find a value at some key we return nothing for it). + .filter_map(|r| future::ready(r.transpose())); - Ok(StreamOf(Box::pin(s))) + Ok(StreamOf(Box::pin(s))) + }) + .await } async fn storage_fetch_descendant_keys( @@ -158,99 +173,159 @@ impl Backend for LegacyBackend { } async fn genesis_hash(&self) -> Result { - self.methods.genesis_hash().await + retry(|| self.methods.genesis_hash()).await } async fn block_header(&self, at: T::Hash) -> Result, Error> { - self.methods.chain_get_header(Some(at)).await + retry(|| self.methods.chain_get_header(Some(at))).await } async fn block_body(&self, at: T::Hash) -> Result>>, Error> { - let Some(details) = self.methods.chain_get_block(Some(at)).await? else { - return Ok(None); - }; - Ok(Some( - details.block.extrinsics.into_iter().map(|b| b.0).collect(), - )) + retry(|| async { + let Some(details) = self.methods.chain_get_block(Some(at)).await? else { + return Ok(None); + }; + Ok(Some( + details.block.extrinsics.into_iter().map(|b| b.0).collect(), + )) + }) + .await } async fn latest_finalized_block_ref(&self) -> Result, Error> { - let hash = self.methods.chain_get_finalized_head().await?; - Ok(BlockRef::from_hash(hash)) + retry(|| async { + let hash = self.methods.chain_get_finalized_head().await?; + Ok(BlockRef::from_hash(hash)) + }) + .await } async fn current_runtime_version(&self) -> Result { - let details = self.methods.state_get_runtime_version(None).await?; - Ok(RuntimeVersion { - spec_version: details.spec_version, - transaction_version: details.transaction_version, + retry(|| async { + let details = self.methods.state_get_runtime_version(None).await?; + Ok(RuntimeVersion { + spec_version: details.spec_version, + transaction_version: details.transaction_version, + }) }) + .await } async fn stream_runtime_version(&self) -> Result, Error> { - let sub = self.methods.state_subscribe_runtime_version().await?; - let sub = sub.map(|r| { - r.map(|v| RuntimeVersion { - spec_version: v.spec_version, - transaction_version: v.transaction_version, + let methods = self.methods.clone(); + + let retry_sub = retry_stream(move || { + let methods = methods.clone(); + + Box::pin(async move { + let sub = methods.state_subscribe_runtime_version().await?; + let sub = sub.map(|r| { + r.map(|v| RuntimeVersion { + spec_version: v.spec_version, + transaction_version: v.transaction_version, + }) + }); + Ok(StreamOf(Box::pin(sub))) }) + }) + .await?; + + // For runtime version subscriptions we omit the `DisconnectedWillReconnect` error + // because the once it resubscribes it will emit the latest runtime version. + // + // Thus, it's technically possible that a runtime version can be missed if + // two runtime upgrades happen in quick succession, but this is very unlikely. + let stream = retry_sub.filter(|r| { + let forward = !matches!(r, Err(Error::Rpc(RpcError::DisconnectedWillReconnect(_)))); + async move { forward } }); - Ok(StreamOf(Box::pin(sub))) + + Ok(StreamOf(Box::pin(stream))) } async fn stream_all_block_headers( &self, ) -> Result)>, Error> { - let sub = self.methods.chain_subscribe_all_heads().await?; - let sub = sub.map(|r| { - r.map(|h| { - let hash = h.hash(); - (h, BlockRef::from_hash(hash)) + let methods = self.methods.clone(); + + let retry_sub = retry_stream(move || { + let methods = methods.clone(); + Box::pin(async move { + let sub = methods.chain_subscribe_all_heads().await?; + let sub = sub.map(|r| { + r.map(|h| { + let hash = h.hash(); + (h, BlockRef::from_hash(hash)) + }) + }); + Ok(StreamOf(Box::pin(sub))) }) - }); - Ok(StreamOf(Box::pin(sub))) + }) + .await?; + + Ok(retry_sub) } async fn stream_best_block_headers( &self, ) -> Result)>, Error> { - let sub = self.methods.chain_subscribe_new_heads().await?; - let sub = sub.map(|r| { - r.map(|h| { - let hash = h.hash(); - (h, BlockRef::from_hash(hash)) + let methods = self.methods.clone(); + + let retry_sub = retry_stream(move || { + let methods = methods.clone(); + Box::pin(async move { + let sub = methods.chain_subscribe_new_heads().await?; + let sub = sub.map(|r| { + r.map(|h| { + let hash = h.hash(); + (h, BlockRef::from_hash(hash)) + }) + }); + Ok(StreamOf(Box::pin(sub))) }) - }); - Ok(StreamOf(Box::pin(sub))) + }) + .await?; + + Ok(retry_sub) } async fn stream_finalized_block_headers( &self, ) -> Result)>, Error> { - let sub: super::rpc::RpcSubscription<::Header> = - self.methods.chain_subscribe_finalized_heads().await?; + let this = self.clone(); - // Get the last finalized block immediately so that the stream will emit every finalized block after this. - let last_finalized_block_ref = self.latest_finalized_block_ref().await?; - let last_finalized_block_num = self - .block_header(last_finalized_block_ref.hash()) - .await? - .map(|h| h.number().into()); + let retry_sub = retry_stream(move || { + let this = this.clone(); + Box::pin(async move { + let sub = this.methods.chain_subscribe_finalized_heads().await?; - // Fill in any missing blocks, because the backend may not emit every finalized block; just the latest ones which - // are finalized each time. - let sub = subscribe_to_block_headers_filling_in_gaps( - self.methods.clone(), - sub, - last_finalized_block_num, - ); - let sub = sub.map(|r| { - r.map(|h| { - let hash = h.hash(); - (h, BlockRef::from_hash(hash)) + // Get the last finalized block immediately so that the stream will emit every finalized block after this. + let last_finalized_block_ref = this.latest_finalized_block_ref().await?; + let last_finalized_block_num = this + .block_header(last_finalized_block_ref.hash()) + .await? + .map(|h| h.number().into()); + + // Fill in any missing blocks, because the backend may not emit every finalized block; just the latest ones which + // are finalized each time. + let sub = subscribe_to_block_headers_filling_in_gaps( + this.methods.clone(), + sub, + last_finalized_block_num, + ); + let sub = sub.map(|r| { + r.map(|h| { + let hash = h.hash(); + (h, BlockRef::from_hash(hash)) + }) + }); + + Ok(StreamOf(Box::pin(sub))) }) - }); - Ok(StreamOf(Box::pin(sub))) + }) + .await?; + + Ok(retry_sub) } async fn submit_transaction( @@ -261,6 +336,7 @@ impl Backend for LegacyBackend { .methods .author_submit_and_watch_extrinsic(extrinsic) .await?; + let sub = sub.filter_map(|r| { let mapped = r .map(|tx| { @@ -309,7 +385,8 @@ impl Backend for LegacyBackend { future::ready(mapped) }); - Ok(StreamOf(Box::pin(sub))) + + Ok(StreamOf::new(Box::pin(sub))) } async fn call( @@ -318,9 +395,7 @@ impl Backend for LegacyBackend { call_parameters: Option<&[u8]>, at: T::Hash, ) -> Result, Error> { - self.methods - .state_call(method, call_parameters, Some(at)) - .await + retry(|| self.methods.state_call(method, call_parameters, Some(at))).await } } @@ -431,6 +506,11 @@ impl Stream for StorageFetchDescendantKeysStream { return Poll::Ready(Some(Ok(keys))); } Err(e) => { + if e.is_disconnected_will_reconnect() { + this.keys_fut = Some(keys_fut); + continue; + } + // Error getting keys? Return it. return Poll::Ready(Some(Err(e))); } @@ -513,7 +593,9 @@ impl Stream for StorageFetchDescendantValuesStream { let at = this.keys.at; let results_fut = async move { let keys = keys.iter().map(|k| &**k); - let values = methods.state_query_storage_at(keys, Some(at)).await?; + let values = + retry(|| methods.state_query_storage_at(keys.clone(), Some(at))) + .await?; let values: VecDeque<_> = values .into_iter() .flat_map(|v| { diff --git a/subxt/src/backend/mod.rs b/subxt/src/backend/mod.rs index 63b2bee624..6da2faa4ce 100644 --- a/subxt/src/backend/mod.rs +++ b/subxt/src/backend/mod.rs @@ -9,6 +9,7 @@ pub mod legacy; pub mod rpc; pub mod unstable; +pub mod utils; use subxt_core::client::RuntimeVersion; diff --git a/subxt/src/backend/rpc/mod.rs b/subxt/src/backend/rpc/mod.rs index 453fcf5a7f..bec5d9d86e 100644 --- a/subxt/src/backend/rpc/mod.rs +++ b/subxt/src/backend/rpc/mod.rs @@ -65,8 +65,8 @@ crate::macros::cfg_unstable_light_client! { } crate::macros::cfg_reconnecting_rpc_client! { - mod reconnecting_jsonrpsee_impl; - pub use reconnecting_jsonrpsee_ws_client as reconnecting_rpc_client; + /// reconnecting rpc client. + pub mod reconnecting_rpc_client; } mod rpc_client; diff --git a/subxt/src/backend/rpc/reconnecting_jsonrpsee_impl.rs b/subxt/src/backend/rpc/reconnecting_jsonrpsee_impl.rs deleted file mode 100644 index da37b267e0..0000000000 --- a/subxt/src/backend/rpc/reconnecting_jsonrpsee_impl.rs +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright 2019-2023 Parity Technologies (UK) Ltd. -// This file is dual-licensed as Apache-2.0 or GPL-3.0. -// see LICENSE for license details. - -use super::{RawRpcFuture, RawRpcSubscription, RpcClientT}; -use crate::error::RpcError; -use futures::{FutureExt, StreamExt, TryStreamExt}; -use reconnecting_jsonrpsee_ws_client::SubscriptionId; -use serde_json::value::RawValue; - -impl RpcClientT for reconnecting_jsonrpsee_ws_client::Client { - fn request_raw<'a>( - &'a self, - method: &'a str, - params: Option>, - ) -> RawRpcFuture<'a, Box> { - async { - self.request_raw(method.to_string(), params) - .await - .map_err(|e| RpcError::ClientError(Box::new(e))) - } - .boxed() - } - - fn subscribe_raw<'a>( - &'a self, - sub: &'a str, - params: Option>, - unsub: &'a str, - ) -> RawRpcFuture<'a, RawRpcSubscription> { - async { - let sub = self - .subscribe_raw(sub.to_string(), params, unsub.to_string()) - .await - .map_err(|e| RpcError::ClientError(Box::new(e)))?; - - let id = match sub.id() { - SubscriptionId::Num(n) => n.to_string(), - SubscriptionId::Str(s) => s.to_string(), - }; - let stream = sub - .map_err(|e| RpcError::DisconnectedWillReconnect(e.to_string())) - .boxed(); - - Ok(RawRpcSubscription { - stream, - id: Some(id), - }) - } - .boxed() - } -} diff --git a/subxt/src/backend/rpc/reconnecting_rpc_client.rs b/subxt/src/backend/rpc/reconnecting_rpc_client.rs new file mode 100644 index 0000000000..bfefa461c5 --- /dev/null +++ b/subxt/src/backend/rpc/reconnecting_rpc_client.rs @@ -0,0 +1,270 @@ +// Copyright 2019-2024 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +use super::{RawRpcFuture, RawRpcSubscription, RpcClientT}; +use crate::error::RpcError; +use futures::{Future, FutureExt, StreamExt, TryStreamExt}; +use reconnecting_jsonrpsee_ws_client::{CallRetryPolicy, Client as InnerClient, SubscriptionId}; +use serde_json::value::RawValue; +use std::time::Duration; + +pub use reconnecting_jsonrpsee_ws_client::{ + ExponentialBackoff, FibonacciBackoff, FixedInterval, IdKind, +}; + +#[cfg(feature = "native")] +use reconnecting_jsonrpsee_ws_client::{HeaderMap, PingConfig}; + +/// Builder for [`Client`]. +#[derive(Debug, Clone)] +pub struct Builder

{ + max_request_size: u32, + max_response_size: u32, + retry_policy: P, + max_redirections: u32, + id_kind: IdKind, + max_log_len: u32, + max_concurrent_requests: u32, + request_timeout: Duration, + connection_timeout: Duration, + #[cfg(feature = "native")] + ping_config: Option, + #[cfg(feature = "native")] + headers: HeaderMap, +} + +impl Default for Builder { + fn default() -> Self { + Self { + max_request_size: 10 * 1024 * 1024, + max_response_size: 10 * 1024 * 1024, + retry_policy: ExponentialBackoff::from_millis(10).max_delay(Duration::from_secs(60)), + max_redirections: 5, + id_kind: IdKind::Number, + max_log_len: 1024, + max_concurrent_requests: 1024, + request_timeout: Duration::from_secs(60), + connection_timeout: Duration::from_secs(10), + #[cfg(feature = "native")] + ping_config: Some(PingConfig::new()), + #[cfg(feature = "native")] + headers: HeaderMap::new(), + } + } +} + +impl Builder { + /// Create a new builder. + pub fn new() -> Self { + Self::default() + } +} + +impl

Builder

+where + P: Iterator + Send + Sync + 'static + Clone, +{ + /// Configure the min response size a for websocket message. + /// + /// Default: 10MB + pub fn max_request_size(mut self, max: u32) -> Self { + self.max_request_size = max; + self + } + + /// Configure the max response size a for websocket message. + /// + /// Default: 10MB + pub fn max_response_size(mut self, max: u32) -> Self { + self.max_response_size = max; + self + } + + /// Set the max number of redirections to perform until a connection is regarded as failed. + /// + /// Default: 5 + pub fn max_redirections(mut self, redirect: u32) -> Self { + self.max_redirections = redirect; + self + } + + /// Configure how many concurrent method calls are allowed. + /// + /// Default: 1024 + pub fn max_concurrent_requests(mut self, max: u32) -> Self { + self.max_concurrent_requests = max; + self + } + + /// Configure how long until a method call is regarded as failed. + /// + /// Default: 1 minute + pub fn request_timeout(mut self, timeout: Duration) -> Self { + self.request_timeout = timeout; + self + } + + /// Set connection timeout for the WebSocket handshake + /// + /// Default: 10 seconds + pub fn connection_timeout(mut self, timeout: Duration) -> Self { + self.connection_timeout = timeout; + self + } + + /// Configure the data type of the request object ID + /// + /// Default: number + pub fn id_format(mut self, kind: IdKind) -> Self { + self.id_kind = kind; + self + } + + /// Set maximum length for logging calls and responses. + /// Logs bigger than this limit will be truncated. + /// + /// Default: 1024 + pub fn set_max_logging_length(mut self, max: u32) -> Self { + self.max_log_len = max; + self + } + + /// Configure which retry policy to use. + /// + /// Default: Exponential backoff 10ms + pub fn retry_policy + Send + Sync + 'static + Clone>( + self, + retry_policy: T, + ) -> Builder { + Builder { + max_request_size: self.max_request_size, + max_response_size: self.max_response_size, + retry_policy, + max_redirections: self.max_redirections, + max_log_len: self.max_log_len, + id_kind: self.id_kind, + max_concurrent_requests: self.max_concurrent_requests, + request_timeout: self.request_timeout, + connection_timeout: self.connection_timeout, + #[cfg(feature = "native")] + ping_config: self.ping_config, + #[cfg(feature = "native")] + headers: self.headers, + } + } + + #[cfg(feature = "native")] + #[cfg_attr(docsrs, doc(cfg(feature = "native")))] + /// Configure the WebSocket ping/pong interval. + /// + /// Default: 30 seconds. + pub fn enable_ws_ping(mut self, ping_config: PingConfig) -> Self { + self.ping_config = Some(ping_config); + self + } + + #[cfg(feature = "native")] + #[cfg_attr(docsrs, doc(cfg(feature = "native")))] + /// Disable WebSocket ping/pongs. + /// + /// Default: 30 seconds. + pub fn disable_ws_ping(mut self) -> Self { + self.ping_config = None; + self + } + + #[cfg(feature = "native")] + #[cfg_attr(docsrs, doc(cfg(native)))] + /// Configure custom headers to use in the WebSocket handshake. + pub fn set_headers(mut self, headers: HeaderMap) -> Self { + self.headers = headers; + self + } + + /// Build and connect to the target. + pub async fn build(self, url: String) -> Result { + let client = InnerClient::builder() + .retry_policy(self.retry_policy) + .build(url) + .await + .map_err(|e| RpcError::ClientError(Box::new(e)))?; + + Ok(Client(client)) + } +} + +/// Reconnecting rpc client. +#[derive(Debug, Clone)] +pub struct Client(InnerClient); + +impl Client { + /// Create a builder. + pub fn builder() -> Builder { + Builder::new() + } + + /// A future that resolves when the client has initiated a reconnection. + /// This method returns another future that resolves when the client has reconnected. + /// + /// This may be called multiple times. + pub async fn reconnect_initiated(&self) -> impl Future + '_ { + self.0.reconnect_started().await; + self.0.reconnected() + } + + /// Get how many times the client has reconnected successfully. + pub fn reconnect_count(&self) -> usize { + self.0.reconnect_count() + } +} + +impl RpcClientT for Client { + fn request_raw<'a>( + &'a self, + method: &'a str, + params: Option>, + ) -> RawRpcFuture<'a, Box> { + async { + self.0 + .request_raw_with_policy(method.to_string(), params, CallRetryPolicy::Drop) + .await + .map_err(|e| RpcError::DisconnectedWillReconnect(e.to_string())) + } + .boxed() + } + + fn subscribe_raw<'a>( + &'a self, + sub: &'a str, + params: Option>, + unsub: &'a str, + ) -> RawRpcFuture<'a, RawRpcSubscription> { + async { + let sub = self + .0 + .subscribe_raw_with_policy( + sub.to_string(), + params, + unsub.to_string(), + CallRetryPolicy::Drop, + ) + .await + .map_err(|e| RpcError::ClientError(Box::new(e)))?; + + let id = match sub.id() { + SubscriptionId::Num(n) => n.to_string(), + SubscriptionId::Str(s) => s.to_string(), + }; + let stream = sub + .map_err(|e| RpcError::DisconnectedWillReconnect(e.to_string())) + .boxed(); + + Ok(RawRpcSubscription { + stream, + id: Some(id), + }) + } + .boxed() + } +} diff --git a/subxt/src/backend/unstable/follow_stream.rs b/subxt/src/backend/unstable/follow_stream.rs index 3afa4a9ea5..1a5316f962 100644 --- a/subxt/src/backend/unstable/follow_stream.rs +++ b/subxt/src/backend/unstable/follow_stream.rs @@ -148,6 +148,12 @@ impl Stream for FollowStream { continue; } Poll::Ready(Err(e)) => { + // Re-start if a reconnecting backend was enabled. + if e.is_disconnected_will_reconnect() { + this.stream = InnerStreamState::Stopped; + continue; + } + // Finish forever if there's an error, passing it on. this.stream = InnerStreamState::Finished; return Poll::Ready(Some(Err(e))); @@ -182,6 +188,12 @@ impl Stream for FollowStream { return Poll::Ready(Some(Ok(FollowStreamMsg::Event(ev)))); } Poll::Ready(Some(Err(e))) => { + // Re-start if a reconnecting backend was enabled. + if e.is_disconnected_will_reconnect() { + this.stream = InnerStreamState::Stopped; + continue; + } + // Finish forever if there's an error, passing it on. this.stream = InnerStreamState::Finished; return Poll::Ready(Some(Err(e))); diff --git a/subxt/src/backend/unstable/follow_stream_driver.rs b/subxt/src/backend/unstable/follow_stream_driver.rs index 61aca96dc9..a9bd508990 100644 --- a/subxt/src/backend/unstable/follow_stream_driver.rs +++ b/subxt/src/backend/unstable/follow_stream_driver.rs @@ -5,7 +5,7 @@ use super::follow_stream_unpin::{BlockRef, FollowStreamMsg, FollowStreamUnpin}; use crate::backend::unstable::rpc_methods::{FollowEvent, Initialized, RuntimeEvent}; use crate::config::BlockHash; -use crate::error::Error; +use crate::error::{Error, RpcError}; use futures::stream::{Stream, StreamExt}; use std::collections::{HashMap, HashSet, VecDeque}; use std::ops::DerefMut; @@ -380,6 +380,103 @@ struct SubscriberDetails { waker: Option, } +/// A stream that subscribes to finalized blocks +/// and indicates whether a block was missed if was restarted. +#[derive(Debug)] +pub struct FollowStreamFinalizedHeads { + stream: FollowStreamDriverSubscription, + sub_id: Option, + last_seen_block: Option>, + f: F, + is_done: bool, +} + +impl Unpin for FollowStreamFinalizedHeads {} + +impl FollowStreamFinalizedHeads +where + Hash: BlockHash, + F: Fn(FollowEvent>) -> Vec>, +{ + pub fn new(stream: FollowStreamDriverSubscription, f: F) -> Self { + Self { + stream, + sub_id: None, + last_seen_block: None, + f, + is_done: false, + } + } +} + +impl Stream for FollowStreamFinalizedHeads +where + Hash: BlockHash, + F: Fn(FollowEvent>) -> Vec>, +{ + type Item = Result<(String, Vec>), Error>; + + fn poll_next(mut self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { + if self.is_done { + return Poll::Ready(None); + } + + loop { + let Some(ev) = futures::ready!(self.stream.poll_next_unpin(cx)) else { + self.is_done = true; + return Poll::Ready(None); + }; + + let block_refs = match ev { + FollowStreamMsg::Ready(sub_id) => { + self.sub_id = Some(sub_id); + continue; + } + FollowStreamMsg::Event(FollowEvent::Finalized(finalized)) => { + self.last_seen_block = finalized.finalized_block_hashes.last().cloned(); + + (self.f)(FollowEvent::Finalized(finalized)) + } + FollowStreamMsg::Event(FollowEvent::Initialized(mut init)) => { + let prev = self.last_seen_block.take(); + self.last_seen_block = init.finalized_block_hashes.last().cloned(); + + if let Some(p) = prev { + let Some(pos) = init + .finalized_block_hashes + .iter() + .position(|b| b.hash() == p.hash()) + else { + return Poll::Ready(Some(Err(RpcError::DisconnectedWillReconnect( + "Missed at least one block when the connection was lost".to_owned(), + ) + .into()))); + }; + + // If we got older blocks than `prev`, we need to remove them + // because they should already have been sent at this point. + init.finalized_block_hashes.drain(0..=pos); + } + + (self.f)(FollowEvent::Initialized(init)) + } + FollowStreamMsg::Event(ev) => (self.f)(ev), + }; + + if block_refs.is_empty() { + continue; + } + + let sub_id = self + .sub_id + .clone() + .expect("Ready is always emitted before any other event"); + + return Poll::Ready(Some(Ok((sub_id, block_refs)))); + } + } +} + #[cfg(test)] mod test_utils { use super::super::follow_stream_unpin::test_utils::test_unpin_stream_getter; @@ -402,6 +499,9 @@ mod test_utils { #[cfg(test)] mod test { + use futures::TryStreamExt; + use sp_core::H256; + use super::super::follow_stream::test_utils::{ ev_best_block, ev_finalized, ev_initialized, ev_new_block, }; @@ -545,4 +645,101 @@ mod test { ]; assert_eq!(evs, expected); } + + #[tokio::test] + async fn subscribe_finalized_blocks_restart_works() { + let mut driver = test_follow_stream_driver_getter( + || { + [ + Ok(ev_initialized(0)), + Ok(ev_new_block(0, 1)), + Ok(ev_best_block(1)), + Ok(ev_finalized([1], [])), + Ok(FollowEvent::Stop), + Ok(ev_initialized(1)), + Ok(ev_finalized([2], [])), + Err(Error::Other("ended".to_owned())), + ] + }, + 10, + ); + + let handle = driver.handle(); + + tokio::spawn(async move { while driver.next().await.is_some() {} }); + + let f = |ev| match ev { + FollowEvent::Finalized(ev) => ev.finalized_block_hashes, + FollowEvent::Initialized(ev) => ev.finalized_block_hashes, + _ => vec![], + }; + + let stream = FollowStreamFinalizedHeads::new(handle.subscribe(), f); + let evs: Vec<_> = stream.try_collect().await.unwrap(); + + let expected = vec![ + ( + "sub_id_0".to_string(), + vec![BlockRef::new(H256::from_low_u64_le(0))], + ), + ( + "sub_id_0".to_string(), + vec![BlockRef::new(H256::from_low_u64_le(1))], + ), + ( + "sub_id_5".to_string(), + vec![BlockRef::new(H256::from_low_u64_le(2))], + ), + ]; + assert_eq!(evs, expected); + } + + #[tokio::test] + async fn subscribe_finalized_blocks_restart_with_missed_blocks() { + let mut driver = test_follow_stream_driver_getter( + || { + [ + Ok(ev_initialized(0)), + Ok(FollowEvent::Stop), + // Emulate that we missed some blocks. + Ok(ev_initialized(13)), + Ok(ev_finalized([14], [])), + Err(Error::Other("ended".to_owned())), + ] + }, + 10, + ); + + let handle = driver.handle(); + + tokio::spawn(async move { while driver.next().await.is_some() {} }); + + let f = |ev| match ev { + FollowEvent::Finalized(ev) => ev.finalized_block_hashes, + FollowEvent::Initialized(ev) => ev.finalized_block_hashes, + _ => vec![], + }; + + let evs: Vec<_> = FollowStreamFinalizedHeads::new(handle.subscribe(), f) + .collect() + .await; + + assert_eq!( + evs[0].as_ref().unwrap(), + &( + "sub_id_0".to_string(), + vec![BlockRef::new(H256::from_low_u64_le(0))] + ) + ); + assert!( + matches!(&evs[1], Err(Error::Rpc(RpcError::DisconnectedWillReconnect(e))) if e.contains("Missed at least one block when the connection was lost")) + ); + assert_eq!( + evs[2].as_ref().unwrap(), + &( + "sub_id_2".to_string(), + vec![BlockRef::new(H256::from_low_u64_le(14))] + ) + ); + } } diff --git a/subxt/src/backend/unstable/follow_stream_unpin.rs b/subxt/src/backend/unstable/follow_stream_unpin.rs index cb12c93b28..ecff8b0d58 100644 --- a/subxt/src/backend/unstable/follow_stream_unpin.rs +++ b/subxt/src/backend/unstable/follow_stream_unpin.rs @@ -474,7 +474,7 @@ pub(super) mod test_utils { pub type UnpinRx = std::sync::mpsc::Receiver<(Hash, Arc)>; - /// Get a `FolowStreamUnpin` from an iterator over events. + /// Get a [`FollowStreamUnpin`] from an iterator over events. pub fn test_unpin_stream_getter( events: F, max_life: usize, diff --git a/subxt/src/backend/unstable/mod.rs b/subxt/src/backend/unstable/mod.rs index 5802fb6710..ead0af1d9e 100644 --- a/subxt/src/backend/unstable/mod.rs +++ b/subxt/src/backend/unstable/mod.rs @@ -18,21 +18,22 @@ mod storage_items; pub mod rpc_methods; +use self::follow_stream_driver::FollowStreamFinalizedHeads; use self::rpc_methods::{ FollowEvent, MethodResponse, RuntimeEvent, StorageQuery, StorageQueryType, StorageResultType, }; use crate::backend::{ - rpc::RpcClient, Backend, BlockRef, BlockRefT, RuntimeVersion, StorageResponse, StreamOf, - StreamOfResults, TransactionStatus, + rpc::RpcClient, utils::retry, Backend, BlockRef, BlockRefT, RuntimeVersion, StorageResponse, + StreamOf, StreamOfResults, TransactionStatus, }; use crate::config::BlockHash; use crate::error::{Error, RpcError}; use crate::Config; use async_trait::async_trait; use follow_stream_driver::{FollowStreamDriver, FollowStreamDriverHandle}; +use futures::future::Either; use futures::{Stream, StreamExt}; use std::collections::HashMap; -use std::sync::Arc; use std::task::Poll; use storage_items::StorageItems; @@ -136,43 +137,50 @@ impl UnstableBackend { } /// Stream block headers based on the provided filter fn - async fn stream_headers( + async fn stream_headers( &self, f: F, ) -> Result)>, Error> where - F: Fn(FollowEvent>) -> I + Copy + Send + 'static, - I: IntoIterator> + Send + 'static, - ::IntoIter: Send, + F: Fn( + FollowEvent>, + ) -> Vec> + + Send + + Sync + + 'static, { - let sub_id = get_subscription_id(&self.follow_handle).await?; - let sub_id = Arc::new(sub_id); let methods = self.methods.clone(); - let headers = self.follow_handle.subscribe().events().flat_map(move |ev| { - let sub_id = sub_id.clone(); - let methods = methods.clone(); - let block_refs = f(ev).into_iter(); - - futures::stream::iter(block_refs).filter_map(move |block_ref| { - let sub_id = sub_id.clone(); + let headers = + FollowStreamFinalizedHeads::new(self.follow_handle.subscribe(), f).flat_map(move |r| { let methods = methods.clone(); - async move { - let res = methods - .chainhead_v1_header(&sub_id, block_ref.hash()) - .await - .transpose()?; + let (sub_id, block_refs) = match r { + Ok(ev) => ev, + Err(e) => return Either::Left(futures::stream::once(async { Err(e) })), + }; - let header = match res { - Ok(header) => header, - Err(e) => return Some(Err(e)), - }; + Either::Right( + futures::stream::iter(block_refs).filter_map(move |block_ref| { + let methods = methods.clone(); + let sub_id = sub_id.clone(); - Some(Ok((header, block_ref.into()))) - } - }) - }); + async move { + let res = methods + .chainhead_v1_header(&sub_id, block_ref.hash()) + .await + .transpose()?; + + let header = match res { + Ok(header) => header, + Err(e) => return Some(Err(e)), + }; + + Some(Ok((header, block_ref.into()))) + } + }), + ) + }); Ok(StreamOf(Box::pin(headers))) } @@ -194,31 +202,34 @@ impl Backend for UnstableBackend { keys: Vec>, at: T::Hash, ) -> Result, Error> { - let queries = keys.iter().map(|key| StorageQuery { - key: &**key, - query_type: StorageQueryType::Value, - }); + retry(|| async { + let queries = keys.iter().map(|key| StorageQuery { + key: &**key, + query_type: StorageQueryType::Value, + }); - let storage_items = - StorageItems::from_methods(queries, at, &self.follow_handle, self.methods.clone()) - .await?; + let storage_items = + StorageItems::from_methods(queries, at, &self.follow_handle, self.methods.clone()) + .await?; - let storage_result_stream = storage_items.filter_map(|val| async move { - let val = match val { - Ok(val) => val, - Err(e) => return Some(Err(e)), - }; + let stream = storage_items.filter_map(|val| async move { + let val = match val { + Ok(val) => val, + Err(e) => return Some(Err(e)), + }; - let StorageResultType::Value(result) = val.result else { - return None; - }; - Some(Ok(StorageResponse { - key: val.key.0, - value: result.0, - })) - }); + let StorageResultType::Value(result) = val.result else { + return None; + }; + Some(Ok(StorageResponse { + key: val.key.0, + value: result.0, + })) + }); - Ok(StreamOf(Box::pin(storage_result_stream))) + Ok(StreamOf(Box::pin(stream))) + }) + .await } async fn storage_fetch_descendant_keys( @@ -226,22 +237,25 @@ impl Backend for UnstableBackend { key: Vec, at: T::Hash, ) -> Result>, Error> { - // Ask for hashes, and then just ignore them and return the keys that come back. - let query = StorageQuery { - key: &*key, - query_type: StorageQueryType::DescendantsHashes, - }; + retry(|| async { + // Ask for hashes, and then just ignore them and return the keys that come back. + let query = StorageQuery { + key: &*key, + query_type: StorageQueryType::DescendantsHashes, + }; - let storage_items = StorageItems::from_methods( - std::iter::once(query), - at, - &self.follow_handle, - self.methods.clone(), - ) - .await?; + let storage_items = StorageItems::from_methods( + std::iter::once(query), + at, + &self.follow_handle, + self.methods.clone(), + ) + .await?; - let storage_result_stream = storage_items.map(|val| val.map(|v| v.key.0)); - Ok(StreamOf(Box::pin(storage_result_stream))) + let storage_result_stream = storage_items.map(|val| val.map(|v| v.key.0)); + Ok(StreamOf(Box::pin(storage_result_stream))) + }) + .await } async fn storage_fetch_descendant_values( @@ -249,72 +263,81 @@ impl Backend for UnstableBackend { key: Vec, at: T::Hash, ) -> Result, Error> { - let query = StorageQuery { - key: &*key, - query_type: StorageQueryType::DescendantsValues, - }; - - let storage_items = StorageItems::from_methods( - std::iter::once(query), - at, - &self.follow_handle, - self.methods.clone(), - ) - .await?; - - let storage_result_stream = storage_items.filter_map(|val| async move { - let val = match val { - Ok(val) => val, - Err(e) => return Some(Err(e)), + retry(|| async { + let query = StorageQuery { + key: &*key, + query_type: StorageQueryType::DescendantsValues, }; - let StorageResultType::Value(result) = val.result else { - return None; - }; - Some(Ok(StorageResponse { - key: val.key.0, - value: result.0, - })) - }); + let storage_items = StorageItems::from_methods( + std::iter::once(query), + at, + &self.follow_handle, + self.methods.clone(), + ) + .await?; - Ok(StreamOf(Box::pin(storage_result_stream))) + let storage_result_stream = storage_items.filter_map(|val| async move { + let val = match val { + Ok(val) => val, + Err(e) => return Some(Err(e)), + }; + + let StorageResultType::Value(result) = val.result else { + return None; + }; + Some(Ok(StorageResponse { + key: val.key.0, + value: result.0, + })) + }); + + Ok(StreamOf(Box::pin(storage_result_stream))) + }) + .await } async fn genesis_hash(&self) -> Result { - self.methods.chainspec_v1_genesis_hash().await + retry(|| self.methods.chainspec_v1_genesis_hash()).await } async fn block_header(&self, at: T::Hash) -> Result, Error> { - let sub_id = get_subscription_id(&self.follow_handle).await?; - self.methods.chainhead_v1_header(&sub_id, at).await + retry(|| async { + let sub_id = get_subscription_id(&self.follow_handle).await?; + self.methods.chainhead_v1_header(&sub_id, at).await + }) + .await } async fn block_body(&self, at: T::Hash) -> Result>>, Error> { - let sub_id = get_subscription_id(&self.follow_handle).await?; + retry(|| async { + let sub_id = get_subscription_id(&self.follow_handle).await?; - // Subscribe to the body response and get our operationId back. - let follow_events = self.follow_handle.subscribe().events(); - let status = self.methods.chainhead_v1_body(&sub_id, at).await?; - let operation_id = match status { - MethodResponse::LimitReached => { - return Err(RpcError::request_rejected("limit reached").into()) - } - MethodResponse::Started(s) => s.operation_id, - }; - - // Wait for the response to come back with the correct operationId. - let mut exts_stream = follow_events.filter_map(|ev| { - let FollowEvent::OperationBodyDone(body) = ev else { - return std::future::ready(None); + // Subscribe to the body response and get our operationId back. + let follow_events = self.follow_handle.subscribe().events(); + let status = self.methods.chainhead_v1_body(&sub_id, at).await?; + let operation_id = match status { + MethodResponse::LimitReached => { + return Err(RpcError::request_rejected("limit reached").into()) + } + MethodResponse::Started(s) => s.operation_id, }; - if body.operation_id != operation_id { - return std::future::ready(None); - } - let exts: Vec<_> = body.value.into_iter().map(|ext| ext.0).collect(); - std::future::ready(Some(exts)) - }); - Ok(exts_stream.next().await) + // Wait for the response to come back with the correct operationId. + let mut exts_stream = follow_events.filter_map(|ev| { + let FollowEvent::OperationBodyDone(body) = ev else { + return std::future::ready(None); + }; + if body.operation_id != operation_id { + return std::future::ready(None); + } + let exts: Vec<_> = body.value.into_iter().map(|ext| ext.0).collect(); + std::future::ready(Some(exts)) + }); + + Ok(exts_stream.next().await) + }) + .await } async fn latest_finalized_block_ref(&self) -> Result, Error> { @@ -423,12 +446,16 @@ impl Backend for UnstableBackend { std::future::ready(Some(Ok(runtime_version))) }); - Ok(StreamOf(Box::pin(runtime_stream))) + Ok(StreamOf::new(Box::pin(runtime_stream))) } async fn stream_all_block_headers( &self, ) -> Result)>, Error> { + // TODO: https://github.com/paritytech/subxt/issues/1568 + // + // It's possible that blocks may be silently missed if + // a reconnection occurs because it's restarted by the unstable backend. self.stream_headers(|ev| match ev { FollowEvent::Initialized(init) => init.finalized_block_hashes, FollowEvent::NewBlock(ev) => { @@ -442,6 +469,10 @@ impl Backend for UnstableBackend { async fn stream_best_block_headers( &self, ) -> Result)>, Error> { + // TODO: https://github.com/paritytech/subxt/issues/1568 + // + // It's possible that blocks may be silently missed if + // a reconnection occurs because it's restarted by the unstable backend. self.stream_headers(|ev| match ev { FollowEvent::Initialized(init) => init.finalized_block_hashes, FollowEvent::BestBlockChanged(ev) => vec![ev.best_block_hash], @@ -638,37 +669,40 @@ impl Backend for UnstableBackend { call_parameters: Option<&[u8]>, at: T::Hash, ) -> Result, Error> { - let sub_id = get_subscription_id(&self.follow_handle).await?; + retry(|| async { + let sub_id = get_subscription_id(&self.follow_handle).await?; - // Subscribe to the body response and get our operationId back. - let follow_events = self.follow_handle.subscribe().events(); - let call_parameters = call_parameters.unwrap_or(&[]); - let status = self - .methods - .chainhead_v1_call(&sub_id, at, method, call_parameters) - .await?; - let operation_id = match status { - MethodResponse::LimitReached => { - return Err(RpcError::request_rejected("limit reached").into()) - } - MethodResponse::Started(s) => s.operation_id, - }; - - // Wait for the response to come back with the correct operationId. - let mut call_data_stream = follow_events.filter_map(|ev| { - let FollowEvent::OperationCallDone(body) = ev else { - return std::future::ready(None); + // Subscribe to the body response and get our operationId back. + let follow_events = self.follow_handle.subscribe().events(); + let call_parameters = call_parameters.unwrap_or(&[]); + let status = self + .methods + .chainhead_v1_call(&sub_id, at, method, call_parameters) + .await?; + let operation_id = match status { + MethodResponse::LimitReached => { + return Err(RpcError::request_rejected("limit reached").into()) + } + MethodResponse::Started(s) => s.operation_id, }; - if body.operation_id != operation_id { - return std::future::ready(None); - } - std::future::ready(Some(body.output.0)) - }); - call_data_stream - .next() - .await - .ok_or_else(|| RpcError::SubscriptionDropped.into()) + // Wait for the response to come back with the correct operationId. + let mut call_data_stream = follow_events.filter_map(|ev| { + let FollowEvent::OperationCallDone(body) = ev else { + return std::future::ready(None); + }; + if body.operation_id != operation_id { + return std::future::ready(None); + } + std::future::ready(Some(body.output.0)) + }); + + call_data_stream + .next() + .await + .ok_or_else(|| RpcError::SubscriptionDropped.into()) + }) + .await } } diff --git a/subxt/src/backend/unstable/storage_items.rs b/subxt/src/backend/unstable/storage_items.rs index 52d8560835..0e7aa46772 100644 --- a/subxt/src/backend/unstable/storage_items.rs +++ b/subxt/src/backend/unstable/storage_items.rs @@ -111,6 +111,11 @@ impl Stream for StorageItems { return Poll::Pending; } Poll::Ready(Err(e)) => { + if e.is_disconnected_will_reconnect() { + self.continue_fut = Some((self.continue_call)()); + continue; + } + self.done = true; return Poll::Ready(Some(Err(e))); } diff --git a/subxt/src/backend/utils.rs b/subxt/src/backend/utils.rs new file mode 100644 index 0000000000..e8587734ba --- /dev/null +++ b/subxt/src/backend/utils.rs @@ -0,0 +1,271 @@ +//! RPC utils. + +use super::{StreamOf, StreamOfResults}; +use crate::error::Error; +use futures::future::BoxFuture; +use futures::{FutureExt, Stream, StreamExt}; +use std::{future::Future, pin::Pin, task::Poll}; + +/// Resubscribe callback. +type ResubscribeGetter = Box ResubscribeFuture + Send>; + +/// Future that resolves to a subscription stream. +type ResubscribeFuture = Pin, Error>> + Send>>; + +pub(crate) enum PendingOrStream { + Pending(BoxFuture<'static, Result, Error>>), + Stream(StreamOfResults), +} + +impl std::fmt::Debug for PendingOrStream { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + PendingOrStream::Pending(_) => write!(f, "Pending"), + PendingOrStream::Stream(_) => write!(f, "Stream"), + } + } +} + +/// Retry subscription. +struct RetrySubscription { + resubscribe: ResubscribeGetter, + state: Option>, +} + +impl std::marker::Unpin for RetrySubscription {} + +impl Stream for RetrySubscription { + type Item = Result; + + fn poll_next( + mut self: Pin<&mut Self>, + cx: &mut std::task::Context<'_>, + ) -> Poll> { + loop { + let Some(mut this) = self.state.take() else { + return Poll::Ready(None); + }; + + match this { + PendingOrStream::Stream(ref mut s) => match s.poll_next_unpin(cx) { + Poll::Ready(Some(Err(err))) => { + if err.is_disconnected_will_reconnect() { + self.state = Some(PendingOrStream::Pending((self.resubscribe)())); + } + return Poll::Ready(Some(Err(err))); + } + Poll::Ready(None) => return Poll::Ready(None), + Poll::Ready(Some(Ok(val))) => { + self.state = Some(this); + return Poll::Ready(Some(Ok(val))); + } + Poll::Pending => { + self.state = Some(this); + return Poll::Pending; + } + }, + PendingOrStream::Pending(mut fut) => match fut.poll_unpin(cx) { + Poll::Ready(Ok(stream)) => { + self.state = Some(PendingOrStream::Stream(stream)); + continue; + } + Poll::Ready(Err(err)) => { + if err.is_disconnected_will_reconnect() { + self.state = Some(PendingOrStream::Pending((self.resubscribe)())); + } + return Poll::Ready(Some(Err(err))); + } + Poll::Pending => { + self.state = Some(PendingOrStream::Pending(fut)); + return Poll::Pending; + } + }, + }; + } + } +} + +/// Retry a future until it doesn't return a disconnected error. +/// +/// # Example +/// +/// ```no_run +/// use subxt::backend::utils::retry; +/// +/// async fn some_future() -> Result<(), subxt::error::Error> { +/// Ok(()) +/// } +/// +/// #[tokio::main] +/// async fn main() { +/// let result = retry(|| some_future()).await; +/// } +/// ``` +pub async fn retry(mut retry_future: F) -> Result +where + F: FnMut() -> T, + T: Future>, +{ + const REJECTED_MAX_RETRIES: usize = 10; + let mut rejected_retries = 0; + + loop { + match retry_future().await { + Ok(v) => return Ok(v), + Err(e) => { + if e.is_disconnected_will_reconnect() { + continue; + } + + // TODO: https://github.com/paritytech/subxt/issues/1567 + // This is a hack because if a reconnection occurs + // the order of pending calls is not guaranteed. + // + // Such that it's possible the a pending future completes + // before `chainHead_follow` is established with fresh + // subscription id. + // + if e.is_rejected() && rejected_retries < REJECTED_MAX_RETRIES { + rejected_retries += 1; + continue; + } + + return Err(e); + } + } + } +} + +/// Create a retry stream that will resubscribe on disconnect. +/// +/// It's important to note that this function is intended to work only for stateless subscriptions. +/// If the subscription takes input or modifies state, this function should not be used. +/// +/// # Example +/// +/// ```no_run +/// use subxt::backend::{utils::retry_stream, StreamOf}; +/// use futures::future::FutureExt; +/// +/// #[tokio::main] +/// async fn main() { +/// retry_stream(|| { +/// // This needs to return a stream of results but if you are using +/// // the subxt backend already it will return StreamOf so you can just +/// // return it directly in the async block below. +/// async move { Ok(StreamOf::new(Box::pin(futures::stream::iter([Ok(2)])))) }.boxed() +/// }).await; +/// } +/// ``` +pub async fn retry_stream(sub_stream: F) -> Result, Error> +where + F: FnMut() -> ResubscribeFuture + Send + 'static + Clone, + R: Send + 'static, +{ + let stream = retry(sub_stream.clone()).await?; + + let resubscribe = Box::new(move || { + let sub_stream = sub_stream.clone(); + async move { retry(sub_stream).await }.boxed() + }); + + // The extra Box is to encapsulate the retry subscription type + Ok(StreamOf::new(Box::pin(RetrySubscription { + state: Some(PendingOrStream::Stream(stream)), + resubscribe, + }))) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::backend::StreamOf; + + fn disconnect_err() -> Error { + Error::Rpc(crate::error::RpcError::DisconnectedWillReconnect( + String::new(), + )) + } + + fn custom_err() -> Error { + Error::Other(String::new()) + } + + #[tokio::test] + async fn retry_stream_works() { + let retry_stream = retry_stream(|| { + async { + Ok(StreamOf::new(Box::pin(futures::stream::iter([ + Ok(1), + Ok(2), + Ok(3), + Err(disconnect_err()), + ])))) + } + .boxed() + }) + .await + .unwrap(); + + let result = retry_stream + .take(5) + .collect::>>() + .await; + + assert!(matches!(result[0], Ok(r) if r == 1)); + assert!(matches!(result[1], Ok(r) if r == 2)); + assert!(matches!(result[2], Ok(r) if r == 3)); + assert!(matches!(result[3], Err(ref e) if e.is_disconnected_will_reconnect())); + assert!(matches!(result[4], Ok(r) if r == 1)); + } + + #[tokio::test] + async fn retry_sub_works() { + let stream = futures::stream::iter([Ok(1), Err(disconnect_err())]); + + let resubscribe = Box::new(move || { + async move { Ok(StreamOf::new(Box::pin(futures::stream::iter([Ok(2)])))) }.boxed() + }); + + let retry_stream = RetrySubscription { + state: Some(PendingOrStream::Stream(StreamOf::new(Box::pin(stream)))), + resubscribe, + }; + + let result: Vec<_> = retry_stream.collect().await; + + assert!(matches!(result[0], Ok(r) if r == 1)); + assert!(matches!(result[1], Err(ref e) if e.is_disconnected_will_reconnect())); + assert!(matches!(result[2], Ok(r) if r == 2)); + } + + #[tokio::test] + async fn retry_sub_err_terminates_stream() { + let stream = futures::stream::iter([Ok(1)]); + let resubscribe = Box::new(move || async move { Err(custom_err()) }.boxed()); + + let retry_stream = RetrySubscription { + state: Some(PendingOrStream::Stream(StreamOf::new(Box::pin(stream)))), + resubscribe, + }; + + assert_eq!(retry_stream.count().await, 1); + } + + #[tokio::test] + async fn retry_sub_resubscribe_err() { + let stream = futures::stream::iter([Ok(1), Err(disconnect_err())]); + let resubscribe = Box::new(move || async move { Err(custom_err()) }.boxed()); + + let retry_stream = RetrySubscription { + state: Some(PendingOrStream::Stream(StreamOf::new(Box::pin(stream)))), + resubscribe, + }; + + let result: Vec<_> = retry_stream.collect().await; + + assert!(matches!(result[0], Ok(r) if r == 1)); + assert!(matches!(result[1], Err(ref e) if e.is_disconnected_will_reconnect())); + assert!(matches!(result[2], Err(ref e) if matches!(e, Error::Other(_)))); + } +} diff --git a/subxt/src/blocks/blocks_client.rs b/subxt/src/blocks/blocks_client.rs index 0d8e589a94..c0cb92f9c9 100644 --- a/subxt/src/blocks/blocks_client.rs +++ b/subxt/src/blocks/blocks_client.rs @@ -95,8 +95,8 @@ where { let client = self.client.clone(); header_sub_fut_to_block_sub(self.clone(), async move { - let sub = client.backend().stream_all_block_headers().await?; - BlockStreamRes::Ok(sub) + let stream = client.backend().stream_all_block_headers().await?; + BlockStreamRes::Ok(stream) }) } @@ -112,8 +112,8 @@ where { let client = self.client.clone(); header_sub_fut_to_block_sub(self.clone(), async move { - let sub = client.backend().stream_best_block_headers().await?; - BlockStreamRes::Ok(sub) + let stream = client.backend().stream_best_block_headers().await?; + BlockStreamRes::Ok(stream) }) } @@ -126,8 +126,8 @@ where { let client = self.client.clone(); header_sub_fut_to_block_sub(self.clone(), async move { - let sub = client.backend().stream_finalized_block_headers().await?; - BlockStreamRes::Ok(sub) + let stream = client.backend().stream_finalized_block_headers().await?; + BlockStreamRes::Ok(stream) }) } } diff --git a/subxt/src/client/online_client.rs b/subxt/src/client/online_client.rs index eaf03fd671..fccd487423 100644 --- a/subxt/src/client/online_client.rs +++ b/subxt/src/client/online_client.rs @@ -432,9 +432,8 @@ impl ClientRuntimeUpdater { /// Instead that's up to the user of this API to decide when to update and /// to perform the actual updating. pub async fn runtime_updates(&self) -> Result, Error> { - let stream = self.0.backend().stream_runtime_version().await?; Ok(RuntimeUpdaterStream { - stream, + stream: self.0.backend().stream_runtime_version().await?, client: self.0.clone(), }) } diff --git a/subxt/src/error/mod.rs b/subxt/src/error/mod.rs index 0f942a1c40..53803450f1 100644 --- a/subxt/src/error/mod.rs +++ b/subxt/src/error/mod.rs @@ -125,6 +125,11 @@ impl Error { pub fn is_disconnected_will_reconnect(&self) -> bool { matches!(self, Error::Rpc(RpcError::DisconnectedWillReconnect(_))) } + + /// Checks whether the error was caused by a RPC request being rejected. + pub fn is_rejected(&self) -> bool { + matches!(self, Error::Rpc(RpcError::RequestRejected(_))) + } } /// An RPC error. Since we are generic over the RPC client that is used, diff --git a/subxt/src/tx/tx_progress.rs b/subxt/src/tx/tx_progress.rs index 3c5d9b7de5..f4d2ed9ab9 100644 --- a/subxt/src/tx/tx_progress.rs +++ b/subxt/src/tx/tx_progress.rs @@ -11,11 +11,11 @@ use crate::{ client::OnlineClientT, error::{DispatchError, Error, RpcError, TransactionError}, events::EventsClient, + utils::strip_compact_prefix, Config, }; use derive_where::derive_where; use futures::{Stream, StreamExt}; -use subxt_core::utils::strip_compact_prefix; /// This struct represents a subscription to the progress of some transaction. pub struct TxProgress { From d1d8669c7a2b54e76c00dd132f70ae81e6f2ca3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 09:43:29 +0100 Subject: [PATCH 007/137] build(deps): bump thiserror from 1.0.59 to 1.0.60 (#1582) Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.59 to 1.0.60. - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.59...1.0.60) --- updated-dependencies: - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 10 +++++----- Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 69c19ddd6d..ac5d1f5ebd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2893,7 +2893,7 @@ checksum = "4e69bf016dc406eff7d53a7d3f7cf1c2e72c82b9088aac1118591e36dd2cd3e9" dependencies = [ "bitcoin_hashes 0.13.0", "rand", - "rand_core 0.5.1", + "rand_core 0.6.4", "serde", "unicode-normalization", ] @@ -5047,18 +5047,18 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa" +checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.59" +version = "1.0.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66" +checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 127079933c..5078e7a3a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,7 @@ scale-typegen-description = "0.5.0" serde = { version = "1.0.200", default-features = false, features = ["derive"] } serde_json = { version = "1.0.116", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } -thiserror = "1.0.59" +thiserror = "1.0.60" tokio = { version = "1.37", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" From f86153355983edef2b9112312e1c9b66a180aa0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 09:43:42 +0100 Subject: [PATCH 008/137] build(deps): bump scale-value from 0.15.0 to 0.15.1 (#1581) Bumps [scale-value](https://github.com/paritytech/scale-value) from 0.15.0 to 0.15.1. - [Release notes](https://github.com/paritytech/scale-value/releases) - [Changelog](https://github.com/paritytech/scale-value/blob/main/CHANGELOG.md) - [Commits](https://github.com/paritytech/scale-value/commits) --- updated-dependencies: - dependency-name: scale-value dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ac5d1f5ebd..cff61f247e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3851,9 +3851,9 @@ dependencies = [ [[package]] name = "scale-value" -version = "0.15.0" +version = "0.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9e20eb2f3b02cb16f7ccb575c599f4624567c9ad58206d61995e7fc2a0efb7" +checksum = "64129c6401da72fe84c24ca2070f5439efe0244d485198ea4889a194b7b58e98" dependencies = [ "base58", "blake2", diff --git a/Cargo.toml b/Cargo.toml index 5078e7a3a4..37f3e47077 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,7 +91,7 @@ proc-macro2 = "1.0.81" quote = "1.0.36" regex = { version = "1.10.4", default-features = false } scale-info = { version = "2.11.0", default-features = false } -scale-value = { version = "0.15.0", default-features = false } +scale-value = { version = "0.15.1", default-features = false } scale-bits = { version = "0.6.0", default-features = false } scale-decode = { version = "0.12.0", default-features = false } scale-encode = { version = "0.7.0", default-features = false } From b6083cc2979f6e717f16f7038e610a0d63e3a60d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 09:43:53 +0100 Subject: [PATCH 009/137] build(deps): bump cfg_aliases from 0.2.0 to 0.2.1 (#1580) Bumps [cfg_aliases](https://github.com/katharostech/cfg_aliases) from 0.2.0 to 0.2.1. - [Release notes](https://github.com/katharostech/cfg_aliases/releases) - [Changelog](https://github.com/katharostech/cfg_aliases/blob/master/release.toml) - [Commits](https://github.com/katharostech/cfg_aliases/compare/v0.2.0...v0.2.1) --- updated-dependencies: - dependency-name: cfg_aliases dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- testing/integration-tests/Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cff61f247e..55e1df2d40 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -785,9 +785,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "cfg_aliases" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e53693616d3075149f4ead59bdeecd204ac6b8192d8969757601b74bddf00f" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chacha20" diff --git a/testing/integration-tests/Cargo.toml b/testing/integration-tests/Cargo.toml index 47293cd1ea..451a99a500 100644 --- a/testing/integration-tests/Cargo.toml +++ b/testing/integration-tests/Cargo.toml @@ -49,4 +49,4 @@ substrate-runner = { workspace = true } subxt-test-macro = { path = "subxt-test-macro" } [build-dependencies] -cfg_aliases = "0.2.0" +cfg_aliases = "0.2.1" From 2e046e001542b2d0e1903084675f1b035b938c5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 09:44:04 +0100 Subject: [PATCH 010/137] build(deps): bump serde from 1.0.200 to 1.0.201 (#1578) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.200 to 1.0.201. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.200...v1.0.201) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 55e1df2d40..1143322f6a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4010,9 +4010,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.200" +version = "1.0.201" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" +checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" dependencies = [ "serde_derive", ] @@ -4028,9 +4028,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.200" +version = "1.0.201" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" +checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 37f3e47077..829e624738 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -97,7 +97,7 @@ scale-decode = { version = "0.12.0", default-features = false } scale-encode = { version = "0.7.0", default-features = false } scale-typegen = "0.5.0" scale-typegen-description = "0.5.0" -serde = { version = "1.0.200", default-features = false, features = ["derive"] } +serde = { version = "1.0.201", default-features = false, features = ["derive"] } serde_json = { version = "1.0.116", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.60" From fca567cd1bac8886b77b045ecfa7d083fa9769ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 09:44:21 +0100 Subject: [PATCH 011/137] build(deps): bump proc-macro2 from 1.0.81 to 1.0.82 (#1579) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.81 to 1.0.82. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.81...1.0.82) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1143322f6a..79f775c03c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3273,9 +3273,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.81" +version = "1.0.82" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" dependencies = [ "unicode-ident", ] diff --git a/Cargo.toml b/Cargo.toml index 829e624738..541080d385 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -87,7 +87,7 @@ jsonrpsee = { version = "0.22" } pretty_assertions = "1.4.0" primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" -proc-macro2 = "1.0.81" +proc-macro2 = "1.0.82" quote = "1.0.36" regex = { version = "1.10.4", default-features = false } scale-info = { version = "2.11.0", default-features = false } From 910a62e184380edce32f55be518b9a85a2766ae2 Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 15:23:06 +0100 Subject: [PATCH 012/137] Update Artifacts (auto-generated) (#1577) * Update Artifacts (auto-generated) * Fix test for new artifacts --------- Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> Co-authored-by: James Wilson --- artifacts/demo_chain_specs/polkadot.json | 12 +- artifacts/polkadot_metadata_full.scale | Bin 288423 -> 415965 bytes artifacts/polkadot_metadata_small.scale | Bin 59334 -> 99977 bytes artifacts/polkadot_metadata_tiny.scale | Bin 37597 -> 67540 bytes cli/src/commands/explore/mod.rs | 16 +- .../src/full_client/codegen/polkadot.rs | 18704 +++++++++++++--- 6 files changed, 15143 insertions(+), 3589 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 9fb30fb369..bdbb8804da 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -34,7 +34,9 @@ "/dns/dot14.rotko.net/tcp/35214/wss/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" + "/dns/ibp-boot-polkadot.luckyfriday.io/tcp/30334/wss/p2p/12D3KooWEjk6QXrZJ26fLpaajisJGHiz6WiQsR8k7mkM9GmWKnRZ", + "/dns/boot-polkadot.luckyfriday.io/tcp/443/wss/p2p/12D3KooWAdyiVAaeGdtBt6vn5zVetwA4z4qfm9Fi2QCSykN1wTBJ", + "/dns4/polkadot-0.boot.onfinality.io/tcp/24446/ws/p2p/12D3KooWT1PWaNdAwYrSr89dvStnoGdH3t4LNRbcVNN4JCtsotkR" ], "chainType": "Live", "forkBlocks": null, @@ -43,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x0480df609c40171d0f62924a7d83db3a5c52c2f78dbe0dab0497b8786e659872e8daff340101734e031100000000d35703110000000004877d77dc713f5db844a860efb4ea0372343b3deca76cc7fa0827780217a6c4d33609350101d3570311000000003361031100000000046204e22a5bed51dced77343ac746411fa965babf73ef76b57e185eebd64f32af8d123501013361031100000000936a03110000000000000c6204e22a5bed51dced77343ac746411fa965babf73ef76b57e185eebd64f32af8d123501011f2100000000000033610311000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000e033368bc2edee96d72e43448824a642d53939c6c190693971b05ccd1054464a01000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d0100000000000000aca7a86b6fcf25daa7f0767bfe36b284f3100dc1ee4dcc971fbb3244bb57221c01000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000006869737a2873891c0e4ef80a69e331f64ffc3663c9f3cdf86b440bb41827a252010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000ac8b2b59f77eb5f3725961767878166a3817747018f18cf48c933e284320b90e0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000000219b9856c2d50592c3821d7df9329795c9f6bc1e8d62b76072a4289617e5a060100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc35310010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d0740100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e093601000000000000002803ef26679fce0495aa4066e053c4fa9cda5bfb54e24497fcb1bcef2902cb400100000000000000125becf853d8dc03bc97114ca0c751f6045bd7ef5580e58d32e3b47d7ac5b60301000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca240100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f06787717010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c01000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b010000000000000094af0a39f196a145c9406ace38b2b2b9b9ccec2bf2da2e95d0b0b8507b6f38560100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d24010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a520100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000125f4bb2b8d56e62b303ed525cce2e08f1baf016c3e89f28df7f61a3222ddf4e010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f0100000000000000dab69c099895a293508bafd5bd96a1f5ed7193012d71d546d4792f6452bec619010000000000000004734733edcd9cf662389208fb8ccb5f274a7db8187ccc53dc84250f8599d54d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb190100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c4401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000042bbfd10e95a6a1a57b34cbe01ab26605536797742d6d24394ebe95f87bd925c010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f76010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a252010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000002ea8960211dab2883e7b15dc18336ccf12f096572c66831279c9a5e2492ef51b01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e01000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b7490100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000005c25d331b2e023d12ee512689c3ea95edaadc300c9dc804e98806117f2edf57c01000000000000006205ea8c9da2e39792b9504100d0ce7eec4b9c732297afea3c2a885fe4f5832401000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000dcb8d42bd4e3b7b597542ea3dbbc6ac36058a9b73ca50b23bcc7fe19d08bbc580100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000140fbeeabfb02dede7214a17c2cf78279d076c80d962431f35d1105c87b8d95501000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c491420100000000000000fe9d62e17387326c0e4b75697b2f0fbdff9506992e745d61b4c536c4dc10f57d01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a77480100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe0837215600100000000000000c280e82e46ecabc4d68169e292c59cef96432f25fe849b8a147db5ca0ce7e17b010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f076010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de32010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000e08b1d1e40c5452afab2df7f9ce391eab8fbe0096e9fe744c9b72c414127722f010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e01000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a46301000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007a661c99fd40492b4893407b03822464e7d4853e9ba47fc9e9960c3800d6725f01000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c94450100000000000000386f18b82ffe824f7ee1fda0f511d5112dee1c677bee0069f3d8e3d8be1a321d010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000096ef8b525c38b9a74a3014bd99979230dab2f20221e8c7d1db50c7a61a02e97e0100000000000000769d9f8b45bcbed8fd84b86d2203ee20d199212007387b10216f8fd9441dfa28010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f422360100000000000000b81bd21787e12343691c1fd404bb7f939d53b3c067a82aedcc0b0aca1e8fc17b0100000000000000a8c366514ae829385912b04b0192e934a20045b36cf1911bccc4c064d6d3c461010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000024ad842dcdc5f4d84262c6aee5116e88116fb191dbbd1331453202d3583b1f440100000000000000c2a54db27458236d0902be95fe0e09227a0c07320855f1f1ead7e58bcaf0e3090100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000092fa7c1aa1320b16bf2fd9a0e11a9faf91c02ecaab551ff29bd77958206dca68010000000000000004000000000000000280df609c40171d0f62924a7d83db3a5c52c2f78dbe0dab0497b8786e659872e8daff3401011d21000000000000734e0311000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000e033368bc2edee96d72e43448824a642d53939c6c190693971b05ccd1054464a01000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d0100000000000000aca7a86b6fcf25daa7f0767bfe36b284f3100dc1ee4dcc971fbb3244bb57221c0100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000006869737a2873891c0e4ef80a69e331f64ffc3663c9f3cdf86b440bb41827a252010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e01000000000000004eac292b47117bc6f534374e202ab80c0d3738db05910a29bf263408d547661c010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000ac8b2b59f77eb5f3725961767878166a3817747018f18cf48c933e284320b90e0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000003057a5ccdbce651c71b1ce9d48e9fa23e6720e8e2bbf52f65a0ed14e4a6f3f700100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc35310010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e093601000000000000002803ef26679fce0495aa4066e053c4fa9cda5bfb54e24497fcb1bcef2902cb400100000000000000125becf853d8dc03bc97114ca0c751f6045bd7ef5580e58d32e3b47d7ac5b60301000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca240100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f06787717010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000001c5981afeb58dd37f7ea785c1ac804fa790b9ec8a098b7d80ef2342dbb41d06c0100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c01000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa74010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b010000000000000094af0a39f196a145c9406ace38b2b2b9b9ccec2bf2da2e95d0b0b8507b6f38560100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d24010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a520100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000125f4bb2b8d56e62b303ed525cce2e08f1baf016c3e89f28df7f61a3222ddf4e010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f0100000000000000dab69c099895a293508bafd5bd96a1f5ed7193012d71d546d4792f6452bec619010000000000000004734733edcd9cf662389208fb8ccb5f274a7db8187ccc53dc84250f8599d54d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d01000000000000001a6ae3ba55d3b68146f9b366df0ff4300d8e4cab26dc3892c1207c783caac92f0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb190100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d45401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000042bbfd10e95a6a1a57b34cbe01ab26605536797742d6d24394ebe95f87bd925c010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f76010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a2520100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000002ea8960211dab2883e7b15dc18336ccf12f096572c66831279c9a5e2492ef51b01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e01000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a5240100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b7490100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000005c25d331b2e023d12ee512689c3ea95edaadc300c9dc804e98806117f2edf57c01000000000000006205ea8c9da2e39792b9504100d0ce7eec4b9c732297afea3c2a885fe4f5832401000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000dcb8d42bd4e3b7b597542ea3dbbc6ac36058a9b73ca50b23bcc7fe19d08bbc580100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000140fbeeabfb02dede7214a17c2cf78279d076c80d962431f35d1105c87b8d95501000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a77480100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe0837215600100000000000000c280e82e46ecabc4d68169e292c59cef96432f25fe849b8a147db5ca0ce7e17b010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f0760100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd780100000000000000c2ee94dce21b2c360a47081a4f30a9c9c14a6fa6cb71ca69a44e23116015c033010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a01000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000008013bf5a25c703e64dc4ae7e1248c0f2c7abad9e43672d82611d1097401998560100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000c69e90c4bd0bd56246bbc856d4f2f3dbffd2d4e0d7afc92b7a0516e452db30290100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb32942010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000e08b1d1e40c5452afab2df7f9ce391eab8fbe0096e9fe744c9b72c414127722f010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e01000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe83233001000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007a661c99fd40492b4893407b03822464e7d4853e9ba47fc9e9960c3800d6725f01000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c94450100000000000000386f18b82ffe824f7ee1fda0f511d5112dee1c677bee0069f3d8e3d8be1a321d010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000096ef8b525c38b9a74a3014bd99979230dab2f20221e8c7d1db50c7a61a02e97e0100000000000000769d9f8b45bcbed8fd84b86d2203ee20d199212007387b10216f8fd9441dfa280100000000000000f814da51f3b4325f169ab9aa49354dac5666473330b3e0fb19268962eee96706010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c460100000000000000b81bd21787e12343691c1fd404bb7f939d53b3c067a82aedcc0b0aca1e8fc17b0100000000000000a8c366514ae829385912b04b0192e934a20045b36cf1911bccc4c064d6d3c461010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d610100000000000000a61667ea6442054b56111477f57ecf39b6e90480bfadf54c3e6cb5ac3a3e275801000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000024ad842dcdc5f4d84262c6aee5116e88116fb191dbbd1331453202d3583b1f440100000000000000c2a54db27458236d0902be95fe0e09227a0c07320855f1f1ead7e58bcaf0e3090100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000043b942134983bc52d73b298f4623aedf1a6b2081fae9cff0f3852ee83ca9b2e60100000000000000040000000000000002877d77dc713f5db844a860efb4ea0372343b3deca76cc7fa0827780217a6c4d336093501011e21000000000000d3570311000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000008008c1b7061a2402634fc15d3849e2913863beb9f55024bc8cc7fa7d6e397817010000000000000024a51a9bdb67213626d1b52bd8dbc0e9b94ea88ea417aa17b56212d1cea3e1780100000000000000e033368bc2edee96d72e43448824a642d53939c6c190693971b05ccd1054464a01000000000000004ceef9b2b8e3b5cd971f7557c3a3ad02c9c7a7bbc7365c2db5622fa74853790d0100000000000000aca7a86b6fcf25daa7f0767bfe36b284f3100dc1ee4dcc971fbb3244bb57221c01000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000009cb389c209afbebda2b12113e0266b3d30f46e2a91aaf4451c193d640288357101000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f7201000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000006869737a2873891c0e4ef80a69e331f64ffc3663c9f3cdf86b440bb41827a252010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000ac8b2b59f77eb5f3725961767878166a3817747018f18cf48c933e284320b90e0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000000219b9856c2d50592c3821d7df9329795c9f6bc1e8d62b76072a4289617e5a060100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc35310010000000000000072ed7192625403acef94aa9189f9f179deb89e60478816ca96c79b742f757e750100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c0100000000000000e07d5b19d98a6f8ef5c964b507fcd88f500a2a0a9afd5cffe9d4e3f74d83b27f01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d0740100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000006ec27dfa7ac9d35eb002c55d3e4d56b4df928dd5c44323ac228305741c9e093601000000000000002803ef26679fce0495aa4066e053c4fa9cda5bfb54e24497fcb1bcef2902cb400100000000000000125becf853d8dc03bc97114ca0c751f6045bd7ef5580e58d32e3b47d7ac5b60301000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca240100000000000000a20797f3a8669a909adb22a3aee2844dba82d231cc33f5d9be0e2c533cb82a6701000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000dc1274e0689c7a3eac31b41ce352719529e65c01f26999f74ce17c9905fce87401000000000000009c9bc1074cf465c0dd39f74bfdf16a67f81339ba2ad117a0c7030b4f06787717010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d01000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000c6d5dc6e1ec83491397390449d8cddaa88631e8855efe50697788a93de00fb5501000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000b288a9832e07bef83c5a8ca72c5a5583b321672ba7c6cdd44a971f855d32d95c01000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b010000000000000094af0a39f196a145c9406ace38b2b2b9b9ccec2bf2da2e95d0b0b8507b6f38560100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d24010000000000000086c1922e4ed392d72e0fbc0ee28e7ec0a8ba2b33470330a606cec9a159a79626010000000000000036465f4be77147914969ea78f8e39610310679011dfbb6137dab12e18a687a520100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000125f4bb2b8d56e62b303ed525cce2e08f1baf016c3e89f28df7f61a3222ddf4e010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000566948c62b699e382e5379592d1ad3e1823640d386936142cb9b82915ed02d1801000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f0100000000000000dab69c099895a293508bafd5bd96a1f5ed7193012d71d546d4792f6452bec619010000000000000004734733edcd9cf662389208fb8ccb5f274a7db8187ccc53dc84250f8599d54d01000000000000004e1b48e67c1e62e46add39fa523b956946228ea0f08bd9d20ced798cfc9a0f5b0100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000faa6ae896c2d1040e495acbdcd8d90a02ccb17ba6e507efa2f7deacb3b28466e0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb190100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c4401000000000000005eac8ac37c95fc11921839550a30ef071bbc80fb10ea1482cc67818e184d544a0100000000000000ea2b17bd1b69a7b442dd000db0f12f0bd4bf7a87a540427986bd32f3d3bd55580100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c840010000000000000042bbfd10e95a6a1a57b34cbe01ab26605536797742d6d24394ebe95f87bd925c010000000000000040b77fd8fcabe868dc7f2a08bf14c67e4d433886c3cd3738d1b0b9c649bafc230100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000b633c47d126eceb0e36d788370ebaa179b0c7a3a21cf5f1421bfac40c895ed3c010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000022333a4409728530184f55b95171d2ddcec037603382fc7d6443b1f7b96c813601000000000000009acfd215519f40156749868afc8d56e015759f71cf183fe68382e8c02c75b2510100000000000000f44b3ec5c7b2188f208d60d159d1f5b0914a51a0632eacea6b88ec7b26d6673d01000000000000005ce79c3ad8a0e1806e863f0858c28a81408d19870a62ac0316b3e6345cbb5f76010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000b672ee2f0f9183585ac4875368a0defda6d3c81927fbfc34bbacc7481058cb4b010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000082bb250beb58df1c5346dc5dc26dbc38647a59fcd5c220c41466606cd855a252010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000002ea8960211dab2883e7b15dc18336ccf12f096572c66831279c9a5e2492ef51b01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b01000000000000002a0fda136ae348db338b87bed349145a94ce091227774b0542e533a83d1ba455010000000000000036c5a061b47768957b2b939b2e37e4cdf8825a4abf963c4f912f3ba4cd567f1e01000000000000006a5607bc375d7ac0908e7643ea2e89dbe42f4f805c2fb6e2a22d0385c1232b310100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c9665430801000000000000007eb2b0b6adbe5a5bad38f46db207f94c896d419661f4ab8f21e302a543df9b11010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c4c5fe47a568c2fe4876eafd5e0093dcc31b450eb87bfe58397dfae2a590d4650100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b7490100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000005c25d331b2e023d12ee512689c3ea95edaadc300c9dc804e98806117f2edf57c01000000000000006205ea8c9da2e39792b9504100d0ce7eec4b9c732297afea3c2a885fe4f5832401000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000dcb8d42bd4e3b7b597542ea3dbbc6ac36058a9b73ca50b23bcc7fe19d08bbc580100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000f853a1534a3af56217661420536dd7bea0db6f6db843d8fead77c308ed7dcc7c010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b73010000000000000050d2e3ed042861cfddfecfb31d47caa1927064cb0372213a3015b2acdf1dd1450100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000140fbeeabfb02dede7214a17c2cf78279d076c80d962431f35d1105c87b8d95501000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c491420100000000000000fe9d62e17387326c0e4b75697b2f0fbdff9506992e745d61b4c536c4dc10f57d01000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b01000000000000000884c85734b971a88cd94d86d3c62fdf163256a0387e15e2d36d8f25523a77480100000000000000f2cd13ba1efd67dfd5f8c9150b1a74d1ed1bad1a72c36fed96163b062e463d0101000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000121f9d8ba85d89e3c6f9a0fedcdfc9b05cc40a6d3324eff6e8a58aec5f52590501000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f37705010000000000000038c9a0897d9caff03a308d2120bbe892974ae8cb05f1cfe8b97259f0ac2e852901000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a55010000000000000006adb1e6e78084fd5e5df37fafc180d1ed84377ca41de3b5ca43b764f0cb190901000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000002a4b2935b657f9ec563642ab0f34e223ef594cc70c856b9bd70fbe0837215600100000000000000c280e82e46ecabc4d68169e292c59cef96432f25fe849b8a147db5ca0ce7e17b010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e01000000000000004a512ac212da2c96d7bc8590865ce627e6b60246700595bb100b240e80a3f076010000000000000010e37a12fc6ed768d1a2d33c8abc6db675381dfe69c832abb77d9ba2341b3c4a0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de32010000000000000022376791bf19fefac611324d27bc6acb4b7f7eec713c186adbeda5a1e1b88f340100000000000000bc8f93a45201992fa9d04355095d03adeb5ff1aea206425eae4f902ffd47fe200100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000e08b1d1e40c5452afab2df7f9ce391eab8fbe0096e9fe744c9b72c414127722f010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e79933001000000000000001c860d36fc84a54978d99ad400a719dbbef493f8631856e6def3e9ec998cde3e01000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000e0b770b1bcf7deb030ee75d5bad6ec1ebfe06ded0fc406a8520a9650fe832330010000000000000066a5a598bd5d484fe66e630a3e57f3b245fe0413f81401d7a5d59aeed1a3a46301000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007a661c99fd40492b4893407b03822464e7d4853e9ba47fc9e9960c3800d6725f01000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c94450100000000000000386f18b82ffe824f7ee1fda0f511d5112dee1c677bee0069f3d8e3d8be1a321d010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000096ef8b525c38b9a74a3014bd99979230dab2f20221e8c7d1db50c7a61a02e97e0100000000000000769d9f8b45bcbed8fd84b86d2203ee20d199212007387b10216f8fd9441dfa28010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff21901000000000000009ad36892ec05281de9c63c7cefb3f31e448957a9572e650d9f3af1f21b2f515e0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f422360100000000000000b81bd21787e12343691c1fd404bb7f939d53b3c067a82aedcc0b0aca1e8fc17b0100000000000000a8c366514ae829385912b04b0192e934a20045b36cf1911bccc4c064d6d3c461010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000024ad842dcdc5f4d84262c6aee5116e88116fb191dbbd1331453202d3583b1f440100000000000000c2a54db27458236d0902be95fe0e09227a0c07320855f1f1ead7e58bcaf0e3090100000000000000068245d8a483bdbd4e9d88b49e17a651ec168f25e6851fc52c2e36a516031d5e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a0100000000000000309ab613bea03c4431f7602c937f5a4d17e2102db6fc7f77e32f7a245041b90c01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000003519910296cbdb58e14288f16abf93393ffb8c9c91baa60093d1a7764459b6cc0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5057865, - "finalizedBlockHeader": "0x5a979217b503aa78e90ebcae20f6f220a4bc4ed6d776942fb850bcda517989e6a64bd4040e16472342dec8607f270f2d6ce99ceacb891aaddceaa3d7eace37129bca3338e2f6d0766dc5fcfc489eaa7a5d8284183494f34caa74847fed5c4fd8e05cbf290c0642414245b50103c9000000305803110000000098f2bd8c49c25f3a3ef98d184934741cd144aaf6d1ff9dd46479f449786a3d2941fb3a6b91133bd27200e607d83ce69787200ef74cf2708e876705e0657a9408debff3ab5bba7ae0c88832de6beee0f14de74abdf86218035889d763234fd00c04424545468403eb7277261742e27bca09f32dba2deb3ad262a859449d9bea27887340ba819a9205424142450101eaa77bb7093126995fc6905e2a89ee5d68de063bfae58eaaee9044deb42bef2372c3964800c13860b60bccf420d69bdbb6d1ea9cfdc58bfb9ea3ba0881236783", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000004a3fc0fe1020c7f460c7bd23d0b657c03368552b2f0a12d80a1c406fd066e0db01000000000000009b992b5e9b99eb2cd3b2b648d6db81ed722a2feb4938d998b58dcb5d159fadfa0100000000000000a8b2ff688a9b1709f0371b49fe31d4d5a362d3fa11f64fcdc2941df9351edebe01000000000000003255f477781804204f24ddfd080346b0e75c7c5a92b37cec1fbbe79fa93407b001000000000000005a40b78008713bef1a35714bd32e0ec4c8905dd0728aeb4943280efe766936080100000000000000907fc1295e137738f8862d34490ad0746b80926e236e05ef8b958084f1d91a850100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e0100000000000000426b2be4596a759a15028d84e08c5c56440e6cede68d088f47c671cc3387c3e6010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc2010000000000000003e385d1bbcaeed57930ff625035cd65781e3fe9de1d350d783ba261e678c0ac0100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000ed7a7ea18c2d3b3effd9e8d7031592bc99517ca321c1faf7370f7d6d0fdebc47010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000045ee96016a01c74778a6589fb2934ee9d83fd7a9e36509c4ef794d3d4f309bc60100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca6101000000000000000f42866aa6927f1c5916a8a1a5a5cba2d88e1fff957d80df701617d93ee6407801000000000000005cba2c6f569da1edc3778308da406f266aa53140381dbb3f14f22909ba6e30040100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b60100000000000000589fc35b132ef9d7ed9a6787a203e5a3a37f8cd6c775f47ac5e589d55d381a64010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa20100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b250100000000000000c1c1ff5f66fefb5c0849e3b2333411d1f7e9dd4888600e334e7a33623f15fa360100000000000000f23b0362de32f952573d64c1f52ac4b8db0a7e15e7ad49a0c81d8f15b1f2ca8e0100000000000000594f51d31b1ae51a8c8ec48f5ab2428607440dd9c8f690ea377e99444529acb501000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000008aabd4f6d7ecec7a749c83fc7be33f3b4818cca6f93a4927b4964900df9454e50100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d301000000000000003948bfd09bbbc2fe6ac5dfe53146e32df50828eecf7b2b18cdcff8dc385cbd750100000000000000a2a4af2a11ae7ba812fcc32845583d0354a0f2ffb1271a53c9a976a0f47fff440100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000099f574f1c57e766376a6976ceb3f44ea0420be7426d5c55b016a91e34091a0980100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b01000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000007c077f9fbba618995d7df802a578934d36a5c0bec16dfcbaa7bce3879b4c44ce0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e010000000000000027791275ae7d4735aa45e70210663067f7d268aa57126a26044c8f6d8572a7d80100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe9794701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000affb713ecdae328aa4436756f6a3e8add6b274d5ef1cc19d7aa69ab82c80e472010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000008a2b50acd1a4955fc814bf6720c7427902a6ce709f3a2d7c17c55b67f6f1c0630100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000aa674be249403288a8078e209231e764e3679f2f66a1070ea5d9b5b420fc53ab0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f010000000000000033346b5629c0c499b8cce8b797ee9a312d06155fbe898c8a4a09777ecf8ba91c01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a2831010000000000000037483029302a84623f0a8db165fbed905b0a4fc25e7cfb56e975a0e98336a59b010000000000000053b5918f72e73f92f32b578d1b602f0cc554d98bee8c4e131ef0ac7a63399fb401000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b801000000000000004b1289d5bcb7ebef732dc630d99150de770499877ea75f9dd3e693871beacb3a0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b6730100000000000000f14cb581296c3261284a2ed4e5a85dc0280e5618cc8dc1e76d8ab4ab415ecdd30100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000be5a92b1661a385bbb5d42b4c53e5182988a80759eaeb5b76928f5ad726bd4920100000000000000c05f72a55f91f613b2da541ae27eb6053e80f267c906c135a4ebd848ecfb49db0100000000000000ec295fb809e22c332aa36a57afe05f2c093b2d13e52b0971d8265c5514e4e969010000000000000098237d7b68db1bb6e79c5174523a8806a88fe0fe427b40199b984216800517d30100000000000000efb5f1e4c4ba37f8c159d452d897c607a58518b8355a8454620b3e3ccc3271230100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a190010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f4901000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c0100000000000000f916634f9fd7e54374e30ac6b722ad1793c13cb2d5f2ad38769eaca2f79d414b01000000000000007ba967a2dae0d8839cf44710591db994d18e53b25ec6d0f861da0037c4a4366a0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab601000000000000000228d7fc42b304906518cbd91d73a5384c4893de6cbfe1e7346999df642d3d000100000000000000db9e49a8dc2d75fc63151f9dadc11b7d2d435b9625f62747928fbf7f1be8506f010000000000000082e6b6bf1f275c59fbde0dad91393ae690d5e644d11d23898a9ccfdda025920a01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000d761043f405069ac01285f1ff258450aac675f08d906b1ae0a1ce54eabcb36d901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000de74612da9080d47be35bf4ded2094e23c1de14477114ddcd7b76b815456ec0c0100000000000000d3b3d9703a265a51a137b9de348587c645a168981ef3e01c9dc482856751b8ef010000000000000003dd543dddd6ad00137ddf94a218bfa19d2f08b4365d696765dc25deef76598b0100000000000000cfb9f7f1fcf903a51af729ed1647aee928630e148990309f9dc9f3b14b114b7601000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef0100000000000000d14a779884de1b2fbf079b8e47e8c0edb1c29e282996899a4eab5aaf1f4f41130100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b49727292401000000000000004bf6037c3820cb7468601051701164948b7f7cbbe1ac8cad97e809c76170dddf0100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e9701000000000000001edfbf4f258a7c9ee7a6195a728c2a4989338a0f9c3b5c9b799abecc8630562b01000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb401000000000000009cfeed14dd2f96550a0e7edebd9c9a8c8b1d8f7efdd1abca01987654239f3c860100000000000000736925c31654df870fbc29437c9b2a488ac3262e5d80798534ad00c43a61e54701000000000000008404cabeb0674765bb77af690fa838ba28fa2045d602994a89f07680f4851c83010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b8cf76a8082d518016ea5588be57b64e156ed23b0f72248975522c23d15ef16101000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000620c78305072857b43dadced80ebc057dbfc82b58c14c7b63372ef02140867650100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad10100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000009e4dc072780c293ebda8107e014d03b3dea3d3f14bc9d02cb0c9c0776ce63b990100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad510100000000000000b1fb5116f8c92bf1d763969194db84f09eaac810117f40a8f84410dd54d6518f010000000000000081a47767e6abad1d3c805d4eedb10a226dd9efb967d5f78f8ac4cec55027f1ac010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000c924ec7ef0e00e00c269291948df5b8e7c8df7694049dced2aa7775871670e2d01000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad3439701000000000000004c43a374e6b3e6f7d6c5a6b8518ae0d0d232a1c46d63af8fbc800045a14cbe930100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000f54bb82d58c665ce3289b8765c40e60d84f74da663c164c38e16784d5c142b2c0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec30100000000000000dea32ed7afbb5b31cb45b6e5daff40fb33e80042994d8d6527ee262e32fb2131010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a8660100000000000000f595e043c5f1974fe8467f514a656265c4e64896b47c6dedddd35bbdcff2bded010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb09009501000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000098b4b43d718a523ea7af6b507221638443f55e676b5e69f22bbf28b6e2d970740100000000000000be724139e9bdd099b70f7edab7d1acf0d05fa1a4ca212f5e2958d31f4272dcda0100000000000000134cf4720486824c6a27fa7892c8d82e805653ba1d98480267ec284a76b792c20100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f0100000000000000316bafdefb60951da2738d6c9c2ef1866d139b34b5eab6944d6bae754dd3fb110100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000ebb1834a568ea7653bc66f394937a0aa4f2f617118d2161e2c11c0d7d2febb9d0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d41410100000000000000a51a49fa663cbea3b953fee99f911391d75d638349a2681e30759820c6f3c60b010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000007a1291795805dbe300425311ae50ed698450b1912b62e5b5a3264c68bfa970760100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c0100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a6010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf02701000000000000009bbc024bfe4f072b94735afda064dc3c7da2b4bc0c50cfad44722543583a372e010000000000000086dee2a2c1977cb6ff99dde8fc5b0cb10dcac44b50b19b80f8252899b091c84b0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000c7009be830fe78c42f12f0753923131d16300bac230650001636b6a546cf0aa30100000000000000348e8bacc2d40191a6a00e137c745a422ff8fb03148d2ff9cad75efbb7a670140100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000d227434a77cd7b7127c039eb9995aeb025a242c36ca7116372c7c8fe5bc921b50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000000132d9e682cf8d45ce8efd4bef165a26da5d1349ea1fe9f51abd6dc762272020100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000059dadf17dc0f84c1c334e6a815a04bdfcd0988a3f3bcb713c66ae29e17276cc60100000000000000297dc7cf28b3d40a42c5e8faac876bf7227c670e6e031dd0e0537f4fb70e6fbe010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000f8e030baff510f2092279467b1f4b20a75da6d941011355269545f5a2dd66ec80100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b6301000000000000002ef11bc5ce1e7b53f788ba01ba581b9171ef36449719ff3eb20973342a4a82850100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000b79f919442f4ca5ac9195fd09a1239b1a80bd225f8372f1b36a24a8c55de61f201000000000000002832b59000d2027d2bf57fdb40da04bd8aac1498923397517181cc487a92815201000000000000000cd7067f96a2d63fa72065302432f48690485fa5f47c9afab17123e0482785230100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e701000000000000004ab3fb4afcd05ee5df8e2bdc39a0a7ec1008355062b9d493fda9158a29f8bee40100000000000000be223d49fdccd102646c9b0d62130fbc8e7f0324d55a3eabaaffb5ed1616795a010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c010000000000000006cfc80018342011eef81de0346bbc3997cd97f04dcbeccaa30bd4529388976701000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d499301000000000000000f19c3ed807ad5f2b7546f5e6c5e9bb934835d54ed1f4f989540b86a2ca02b550100000000000000e4c1d1377894eee032e1a60dbac6252e23f35bbb43ce51d5f98652cfee58d5bf0100000000000000666bc268601f06ff4b004b1509bf379603d3f4b7ea684f9638060c0ee5d400620100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000095fde7b91441fae9d2a6360d30228392519293be5e78cf3305667595cb15e566010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000eaaf51c4db0ac374aee2c43ce34866dbce4db52f43096392566898f8570d988f01000000000000000f256655890491ea13673e6cc79f06f3b44303badee1b5785fbca168337c9f5e0100000000000000fe76110186e8a72cb09ec93757b5447cc21d543888903f50e95c68dbea91b0630100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd0301000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa347010000000000000078a2957fa87dcd755360693156976dc31d1ca27a869e032fb1a2d46ae06fd8d10100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000ca35d63347f9deafb433ec20ef8c469bf2e21dc5e67c0c048a5a04fa369424ac0100000000000000ef2deb3b9bae4be70f74994a67307177057e2e173061cf30bb25e5f8e620b06c0100000000000000daffd43670286cbddbf38953e6e33ba093f8c719e9fbf0a4aa76ff3ee97df307010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d550100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006d698963e0fa3c04ef2b32f638e0176e053cd021f6a49b55a4a4ebd4d5fbb11701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000031a46e639e57d1a11119b17f76617a35b3606d206fb5c3e87710f464f7a57de5010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e5518010000000000000087070000000000000001e9123501001d1e00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d123501" + "babeEpochChanges": "0x040e2aab4a4a368674ba2dfd907da64840b1b41cf6fcb7e3dfe6f44f7c493963937b823c0101b3d90a110000000013e30a110000000004f110867b6efec5d5c82065250458c809906d13b757cf5c139857db67ab47fdafd38b3c010113e30a110000000073ec0a11000000000895633b64f43066b7e35fb24be92f06c29f1aa9f9f9123d14ffe77d199c54f19a24953c010173ec0a1100000000d3f50a11000000000061a2fd5f48bda28a55cd8fbe5064c0ae0cceff7b689952e9d82f950eefa601e624953c010173ec0a1100000000d3f50a11000000000000100e2aab4a4a368674ba2dfd907da64840b1b41cf6fcb7e3dfe6f44f7c493963937b823c0101eb21000000000000b3d90a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c661490100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e01000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf500401000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000bcb677d4d301807cfa0fc3a81900795eb648336c0220dcc04f435f22e2a9c0310100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000002c4df89d1869f79ae7c9ac36bb355361d5cf3bcf201076476ac961aad535c46d0100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e66010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000224c5b7c7674050aeafd9bb5e710a8c0ba497cda375cc3daa5a16c171a5f445d01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000ceed28227bff3be87c1a5736f80e425d4a2f79de9edf49f620371fadfbb5e35e01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000d636bcd260e36a2bea4bb1667bbc86285967381ad5822f8cd98ff7d5c88c7430010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000004e111a61089b959a75e6a133ce75f4b23593279e2d98a4ce2aea1607d9dca84e0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe38103010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce69010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f1460100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000fdfed580a41b8d1abde7f5f9b09834ce55de1a81674508590162601198f4c5be010000000000000004000000000000000261a2fd5f48bda28a55cd8fbe5064c0ae0cceff7b689952e9d82f950eefa601e624953c0101ed2100000000000073ec0a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c661490100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e01000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf500401000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000bcb677d4d301807cfa0fc3a81900795eb648336c0220dcc04f435f22e2a9c0310100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000002c4df89d1869f79ae7c9ac36bb355361d5cf3bcf201076476ac961aad535c46d0100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e66010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000224c5b7c7674050aeafd9bb5e710a8c0ba497cda375cc3daa5a16c171a5f445d01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000ceed28227bff3be87c1a5736f80e425d4a2f79de9edf49f620371fadfbb5e35e01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000d636bcd260e36a2bea4bb1667bbc86285967381ad5822f8cd98ff7d5c88c7430010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000004e111a61089b959a75e6a133ce75f4b23593279e2d98a4ce2aea1607d9dca84e0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe38103010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce69010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f1460100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000709cfffdacb27c980557e28d3fad969c35551cda0a7303570cab1a9fce69634e010000000000000004000000000000000295633b64f43066b7e35fb24be92f06c29f1aa9f9f9123d14ffe77d199c54f19a24953c0101ed2100000000000073ec0a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c661490100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e01000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf500401000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000bcb677d4d301807cfa0fc3a81900795eb648336c0220dcc04f435f22e2a9c0310100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000002c4df89d1869f79ae7c9ac36bb355361d5cf3bcf201076476ac961aad535c46d0100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e66010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000224c5b7c7674050aeafd9bb5e710a8c0ba497cda375cc3daa5a16c171a5f445d01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000ceed28227bff3be87c1a5736f80e425d4a2f79de9edf49f620371fadfbb5e35e01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000d636bcd260e36a2bea4bb1667bbc86285967381ad5822f8cd98ff7d5c88c7430010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000004e111a61089b959a75e6a133ce75f4b23593279e2d98a4ce2aea1607d9dca84e0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe38103010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce69010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f1460100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000709cfffdacb27c980557e28d3fad969c35551cda0a7303570cab1a9fce69634e0100000000000000040000000000000002f110867b6efec5d5c82065250458c809906d13b757cf5c139857db67ab47fdafd38b3c0101ec2100000000000013e30a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c661490100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e01000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf500401000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000bcb677d4d301807cfa0fc3a81900795eb648336c0220dcc04f435f22e2a9c0310100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000002c4df89d1869f79ae7c9ac36bb355361d5cf3bcf201076476ac961aad535c46d0100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e66010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000224c5b7c7674050aeafd9bb5e710a8c0ba497cda375cc3daa5a16c171a5f445d01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000ceed28227bff3be87c1a5736f80e425d4a2f79de9edf49f620371fadfbb5e35e01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000d636bcd260e36a2bea4bb1667bbc86285967381ad5822f8cd98ff7d5c88c7430010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000004e111a61089b959a75e6a133ce75f4b23593279e2d98a4ce2aea1607d9dca84e0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe38103010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce69010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f1460100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000094e469c0f6ac6c3fe96e48b9b77d71aa2af0b45ae353e02137ef43a82f3ab3af0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5180496, + "finalizedBlockHeader": "0x50d954eff6293ce7ea8d252f937c149f6bd22e62380702a0f9b2741409531e2f6a5bf20456edf5438b95a9679bd267aedef2f9e7b9c29fea7f2c0b1dcace966c8bd643fc1c3b56c1263c1ef4b77efc28e20f3b73f46801427075654ba9c6c603a800c2ba0c0642414245b501039a000000cae40a11000000009af7a16f9d6066289236c9bd0a4ea9bb57e6290ac6cb5c8f1f43f3323e75df3e5ed6f36300e53d9b6cab938570accb0c9b906fef0978f931b895af7038fcbd060f73560dca771cead7c3a4d5a057f245bb57cedf61d848e1d4b84a584ad8840e044245454684033127b87162e9f1645ff6a9c398624db38387f030427638406f0f0849e33dbf1405424142450101f09e402e967be3688fd3414d47e11b99535ae982d0828b34d4ef6199eb916a07e2b8075c34de02fa8e066a39e4c2477eb780dfede5fe1fdea2a481bd0be3eb84", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f420100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000907fc1295e137738f8862d34490ad0746b80926e236e05ef8b958084f1d91a850100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e910e45c162a4e9ae379bfcca70ac2165ce37f72652ef16898e86fd54f85ec11010000000000000054e3d0d93579bedb7759b60e4b5a009f93fc86ff8da59c00b06b318a4c8d95ea0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000cd5ff80f07fb7c283714e62abd9b5dd07848aeab04c2ba862fcb04f6c3857dcb0100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000f151ff04cc1a5380cb00ac1e4dfc46abc031c4450877a4db963bb3522ab51aab010000000000000032b5e70f48897c333d520934f656ac3cafc040ebb356eee1b9081179d99abf990100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b89222010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000065dc7fefab39364b5669a360cfd3576a24742b82c646f97d0fc49386de6e0a410100000000000000799363fc98b936b54755c8532ae88418a28c3ba30666e6e68dd57dd0ad80c00d0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca6101000000000000000f42866aa6927f1c5916a8a1a5a5cba2d88e1fff957d80df701617d93ee6407801000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000cfdbbf96997bebc3c3315c1a064872d8804beb94bda07854237d05f4d3e2d9ef010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f0100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b01000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000002ff3e4c0ea1f1af0a6ee4a8fc30a57e51c83a4a4ef8794fc5988dea435416d070100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe9794701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000091b2f484e97938e7e844fc5b7355772548bb80f6ac9b3335d8a70d4ecd893600010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000002626d4e6ea5ea56e0d4d6c00064778956aef2ff2e560080f27f180c97d41bf3001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000aa674be249403288a8078e209231e764e3679f2f66a1070ea5d9b5b420fc53ab0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000559c6fad38e962a75d1e2b651563e6a9ba8b20d98069d602fa13a808754d9ada01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000068f2c90b93ba6130eb3a03f568411a471d0710086a468f8cba32b34e37411dd0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000d2ec5312609b0a955652cc5a031f9df32dc6db062dc8cafd5ae60badc946b2b90100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a190010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f6490001000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000a81425a86503d911cf060b51310f0bb796f5ce2cb656e524d23f7fac3c9c48000100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003db5f801c2e208df9a9b55c5f2d459ee2c3dc9fb94e208695f2ee4025f4bed4f010000000000000016b36c754ae6e651c5c6342f5f9bce5299f4dee1111345883addc0b3e2329f18010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f270100000000000000a77cedf144ff05ee72b1d98e35ebd033444347b81873bd39be16ebf6eaeb11b901000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000060f9c98c895b147d505fab521116929a6978af9443f7e4bfc114bce44480ec2001000000000000000228d7fc42b304906518cbd91d73a5384c4893de6cbfe1e7346999df642d3d000100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c8801000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000a40fdf74bca48725a5ca54a379b6c9124f81a06b2e728746b09f3a27b3b3bf040100000000000000b9f54ca6fa0be84b1c7b42a426f37cb4218cc7840b9e1aea647e215739cf19540100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000ff5d4070a8a7798cd22dbc7a7e2a909b697e738683e701aeff696af26ebff07201000000000000005667d5ab2b7b56ad406d51dc657f573e65bc1fa542fc3ff43793a487af92aab601000000000000002cb6878926a8f7dcef3835911a687e37dd680dd9589f96f0cd45b1c1b429d02c01000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000dc5289899ba3e91edf93781843f9abbc99b3ae0beb940c385edf706acdf0d2540100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000572538d1aaea11c9979bf074e0723ba0228690aa9ee8aa0b81db32aabfd822de010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000532bc96e942be9de9214f40c9d221fb9235856f6a781a8be0161acf804b4dbe40100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe6626860100000000000000e09d677a7d9eaa0c82aeaab90dee017ff8b9fdf058c6896d173ab29f4ed24d8001000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000002dd9a73d6ca904a6dbcd597b5f90e412616cf506cb3f3543405393b6721cf4490100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000009e4dc072780c293ebda8107e014d03b3dea3d3f14bc9d02cb0c9c0776ce63b990100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000015b49bdd8cb8b9110a45bd1985746655b330829e1dbe7580ade2fab6531799d30100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab4010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb09009501000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e20100000000000000efe5a28c978573f62f7b5bb6cc06866350d87201c37d342f643bf6713c3349a501000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000098b4b43d718a523ea7af6b507221638443f55e676b5e69f22bbf28b6e2d9707401000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000007a1291795805dbe300425311ae50ed698450b1912b62e5b5a3264c68bfa97076010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000425d9edc1cc5cf795f0caee680a379215cb77d71c69bfe41296df63cb2ac344301000000000000004f7d68f733bb0699f0a1d85f331e073ebec15f6663c17179753f7f38abf3331701000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f0100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000d227434a77cd7b7127c039eb9995aeb025a242c36ca7116372c7c8fe5bc921b50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000f29a410d52229ba73c895256f5bdb4b05663bbd08b2767c80e7e7d60f020fd1a0100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000000132d9e682cf8d45ce8efd4bef165a26da5d1349ea1fe9f51abd6dc762272020100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000004655b8a8e7f4e3532b7aa5e461d25ca6d5af49e0557da59654d15fe1d1eda4c010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c80100000000000000bc4cbcdb5cba3678da8253ddca6502f717f82f26af69e7884c69c2560cb1eedb010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e70100000000000000be223d49fdccd102646c9b0d62130fbc8e7f0324d55a3eabaaffb5ed1616795a010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc01000000000000007e05f9592cac9232e17c222d076c6abdb6f5f5b8175d5b3858ffdae0324b411f01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d499301000000000000000f19c3ed807ad5f2b7546f5e6c5e9bb934835d54ed1f4f989540b86a2ca02b5501000000000000006a536f056479ef8f567471f1859757e3bb6284d4ce04319356eb2d6f5de119710100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a59010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d30100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd0301000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000ee47e05a65a6174fe68fe813b92c23422c44e3e9109fea3724b2c875b91bb6180100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000cda04a8eca15992b2479c73acd756837a661e422efe5c54a03b6c2b65568967a01000000000000000ea1cd7154cd4d50d009d8db3d6d40897d9170ff97e6493c8d0dd2ca7458230701000000000000008a90ddd7f17b99d595a1ce01de26ccc4f6e6a3783cbe11dfaffe491fca97aaf60100000000000000a4f4bbd302c06389ee3614c0943af03d52364f172ef05021aa93d12aef53c32901000000000000006141751a8e08858eaa5e3f0b3472244f90d23eb3094dcaad05fe82e592d058480100000000000000db8e840e99078eaf04cb3f1a4d7973607f3e54060b8d100a966f370daf9adc8f01000000000000002dd8b91790e7023f68c52021f40fe08a5769eb7e3f3a6f6c8a54454012a54974010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d550100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006b637efb1db7c91b689a3dc0a5e42b0f528e5f31d55b1c264452dda3aa2d83d901000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000ca070000000000000001da963c0100291f00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index 3767f672116e2e17b5ce34c7fb8265e94528acc6..828381654dd447a11e1506aeaa809608dab91298 100644 GIT binary patch literal 415965 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

Ujg1)ikadPRma~N(WpU_(r?gFNQq%lHW=K6V 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%0Ax3M>=Exx=#G>VB7Tc+4Cs+4-_nTgAADR@IJ zT`VqF@>LOuuXiW>7_Iweck;~*c6;UO>!Zk!`whR^vG7Rn4p)G`W&};X)kFraZ>ONw zI|cntQ@t14$;FFKF7%5We$dnJYp5@ECogSqe2Z7x>p3gYy8$k+e?z>VC{w&W(73LY zj%5I#wnUjGWhWZe_4$*vs6&!o(=4W1mUB`XmXgiaaM0INs#bDS%3ro6WF_2xdI9f|zO2Lgn{!uR8SpLyM9k!0$ zy%;XG0`Hn!w`OM>J&dkz8q#&`L%Pm~bOZHVAeRn%2x0d|>Y56Bh)D~w?u}mg#%nr9 z(JXMgWCH1xg(9|irmF6bO1%@hTs|{(Qc8=Su@w;%@8c~Yg+3;BsJb46yE7RN3aNt-r=LQe48s04 z6k|;z9W0J?ux+G!n=0ROO|kYZOh(JZsHoI=+ckGwlibFi9k*YT+`iUa9XregubTAh z&Ql0-zHDM6?pW)?UYnv)kLa`A*BPAU(-=*BYdV!!RBVRdKH}7vuPsh)6iJWMogWTZ ztkR?HNO}~o==Lt3lDwaDljrKA2l)?tMSgWEA=SlD1E2H>!nWAyI~X#1401nqYMSd0 z^B0z_7A54&^tmd<4Eny#zZQ+t;Q{@*wjETYlObkZvH4VilN~ZItqegd8kG zD2?1^sb*KMNtXksWi-+ZgZ29U0J%&|UCT4Yh=IvU(?qVePvojk- zT`6g~8ugZur@PpUt!2k1Yi~v8js?sow&i{D5b)-Qm64~TTf=EpBu_`T8rgVT)9_TY z#bgrdy+e4y-;Z3=Y8@X8xDd=8pXocj3V4_VR=1{$#akl#_F0wvp*|Ef>Cqk`&BE4n zHkk0wQP5VAvyrn)i6KkLXSb$TLS1&e%G#=%F=JMdYpK7jGkq{?+Y8%1;5J0aoP`0V zGiyKSXxplD0pcxA#7oKHym}z)ZPmFDF-~Zb#>&!aDVfQ^Sq_D5AG{_x0LdWJi$nra zw;_I_jOa{15XJ$C2`?u|0>|677J8H2r#w+kZ4x_sXZmpXG{k18O}2fqGa0+HF0!lK zW77XArxGH&r&?d1k=-6aXVqkm$fLjygB*d33rb5&jlP^DgoVvE^IeoV+gCea|$f_beJenAUCC$O$&!r7i8fIT?W6nw^}P z16g)%OV2``_`9vvYcbLh&kZvHQE#_pIKrKDm984h}Ag*8674jfz{ zm!j%FnYZ8YvbOfQWujO`I5$xLsl0t+8Czl72S1WvCsjxnaOs)6eVEfVF=$tA1i(Av z`FtK@?CPbq9^!=Es2EMy7(i>S*mfN*&@Dh zK!&4=FITsxzZLpAH@PNd%l1nCzOYsH0)3G+EG3U@7mW#b#T(*TbH=d^vNt3{W7N%# zv{LfX?dfBM&$E-a?bF*5C8OX|T{@m;pMG|G`k}&?`m>Q4XWKr1BZ#INrR0Vk+TR(# z_FY@`;iN~(kWzBj4k21rTdJbA%KLp(4e=%`sKYRT?MNRjd{qlC+P-{q_%f!IERh+q z>C2c@uZ1U1<*l#Gr8wkq}m!hm`uyYCkxtI4ZgS|{rFl9PK9sU+8fnD6tXsyV6J=t z3aK30zPJ;Y1YMbhE_9{iV&L011y_tV`j`&s6-gEYzO0%)Yj}&(raNRu;g@QWRZKu=iABRx03^7 zLTug7y~pD{l!ydE=^GaISc#|NrDuZ3;7LX(Oc*SWD*@wz@G(WY1Y#S7fJjG2E5n)h zm62dL)>2aXrSdq|`B@@XFfa1%Bq*;4basV02E#V9zLF6;ookFNF3ysC3TFyh`B3?u zY0p0c9sy9OQ;eA7)rs(hd)&n!Qzg62RS;?Ioi?o4mrDZ~2%+ndqJ!qK`n(Td1lL;| zfeZTtvr~cysNEi)4B#n@4LV5hhzkbmK-NL**E`y6Ae!bSEp6@@didoQuk_wB8Fm#w z$r>oTT|=>~Lcugj7qZ+8WeXsiEhw_N2ao5{9jW|L;_PE{pIjTTa{rvg+f!DXP@UL! zrYcZZGX$X1$9u?1xiWVSr`@EdN1&IsF-6>zZyIF)l5j?FQF1Inz#u+brHoEf!7-}t zDOY!Qj%r0oI-tikE6E0?WU;KOF{o4wloMj!_KnV5fLBYC{S5!xWq*owo4_0(VoHOo zyC8IY?{nb7{g|Tg zthhbLB1Si+Ey^69B4uzO5TqUUl-a^dXOc+JmaCEI(O)bdRi-yZq_c>M#6MF6u=BG} z8jA)tws1F5kAKFpbxelgCwp0O^BwgKGU+jn`EIWQA1@JYS&3#~;I3F3bd7#oYdlYA zmkY!`Sy|q@a6VN2ow8(TJ|^rPoh!PdW!<)b&4Sj#(9C%r6~(ynNOBmpAb;kni!TsldZ~mUg)yN=6;e;f>XF4sAI$KdgI+|0I@%VB7%|Jm6jnA zp$~5)MD2=k$bgpagM)+OuDQ`p7~{6l7;(ww9+z#MDFTEYg&95~Y;-^+aMYuR!!MwRQk^L3nzZNW9Eg%R64VB=!T zD7mSv4d%TS()TE09xEk9R=L`5gv&SooeN8>&w%3@3WxfYJyn(=gh)J3$V`u&xPX(p zA<*&ETJp8E52`9qj50^88ISnq3m7{N3Ak8C%}9vWC-)^s^)v-#g|&p8^{FOK8!N;< zVwNtD)r$3Bo?h`$Fqs@Y9L>|70%3vi9yvxFo1kTh*@u$Dpce_k%BL0i+`p|BLu*tG zkGyD}&>mGyCW-1jm>?QD5>h$#XVHs1y(t86JoG~H0J0e)&xf6%V~#l*Ut-#s3g*wk z!3E1{jeW;J2!mL)wTRzUMOdmBsH>IooshD68H?HZNkl^etDe`)RH}K0<4ZHR{>N|a zXzjdz1AT_Lh|*j_jOI}t&TCdkKx&x5!kjNxW3v&GBkiETA%w_uV=QnTPf$&?pUs)) zba_$l)TA)as4>ymU6KAX5dP)P*?>5k;R|MkuHXVv~bELf~LdCzZuKCAf>HJckuw@#JjM>r)GF4-AoWhiR|Mh7+p3&j0fu{iCgsWJP1=_9s-q@9(eRKHoikmye>{Ah6KPwDNVJ=H4X#LU)fOMQMZ=?G^#N~gX4wD;1j73L~QhUb1rzmg;W=B>Xn{l2Z$za$_Q zUaWlM?7w@~RKKtJmG8c3_b>m^RRQ^?-+a&SJoxyFU&8|`Iqz@BjSM z?|sjI`r@D4iQ7=}Uw{6O{`}W};_xxm`I`eB@A-u{&)tE+JvsUx{^pO2|Cz3jtIp%k z|C_##|MP!#R&~DhzGpx7xBkSpUR3$7{F57h^RM*&*q>JU^w0e2PyUOa-SiLC?_b}) zd1=p&{>Pu!-=BW+k;hK{^q>C;gXfq3-fPD``U@Yy)hW5@PyG2i&)oi(t1AEPXD@&1 z*WU7<|E2!Ej{lQ3yo{mLHWH`6%)Ie)du^L=ut=j{=|6q?wqf)|=Vz`wkapgb^g8k= zj_m~^MzeUTz(T5q?@CCHwN^=P*I~gU$E|YI`ntTn(YS4x^8u0J_2T>%iH5w&35c>V z%Oeqkd5Wr5(9TUZ6s@vxiw=p9ge)#^V3jUnd?lOuZT?LZju&1ji^-ZUq+J8s;&HiL3Q<@BxnLhhh8ZRFTd8^EJ<}5=cGs~mv zB1*St(QHe_KzF1Ks|?6Ajc29A%`|y3Eqmih()m5xtCHQ7$ubY~>M3o!ORnj8qHwd+ ziHo*bXW|DRgRO)UvpMlke493nbs&tOt@py<3cD zB61sg1mf%pX_vXvINKN~Ph(qUs|@J;mGisc5c`Y!Oc-E| zAw*BidLA;C*x&HGVs_nc7Q$jL*&MFxv z=Xk^T>hmBv*gbp#1}`^yZv+KP_m%ZgfF#F3a@|lIE$sPTtrn{nH|pT&`UNQl108S) zclU$k92_W2J;xE{okC=Z}4krW)yan46Sn=5Im z?^O+s3a-bxU~%#;%K4at*bRr$IIk7uV0?GEdgjFF;ZqZbPM$bDe(KDj@uMeCOq@Ra zmg9#{j87apeBv$RN2-}Bch}1qw#xA zp55ybbhWr3#_rm2KLy}ia=5@`EZ5=lZG+k%7>BL_DT$^6WzQn&;{EhEEq5}_SvbKE zG`?SPPIW8+vQy6UBud~T6WsO$f=rvvXCm0cX>y|N^~xTMJ61P&DF!$+-jkb}Y$~IK zfd~eU_L$=&>4S32N|UFykdsd1*J_aG53xTSf0MJMVGu)GURJ)*kFoZX!-vv{`#9$T-3x}(aK^D=odSdS_Ca(4JXSKpu9Ie1)6P+FL z85{%4I0>VzQN!ZX8>p~BG8y7HFOvTl%tm5{V8G`Po*v2yo1}@Isi0xeq);TE2SM6lWa8pN2P^x(|xqPSfQ=@D=4RmGk+EkLgS1azmN*No^(yCC}c6KDA-W~Ya zz;q+hVxNATvoyv%7ZU0?Xx==lwxM*|p;5|DH7*~BIB=c`^Z2xIiiro&JjW@qg<{oQ zeU~Zis)S}h2xZWI!e?Z`7IL?xSb_WV)2O{`^mXfZZS>drC6%A|0|_#q3{>BCT6VAt zMb9_N{i_QrVi3r7GCM1$ek03;ZXu%(UMU*EdgEWD+S^kZI_m2E_}I|4#i61aaOd?1IZjWRAU z@N{afDRz3`RLUbQ0pP9tw$$Ue27<)yQb75=>_iwN{5G7=G1442bb!^i7V?hB8b_hn zuJRf2Q<8zGU359fN*~7zW7)tm0P0t4YO{26oNnREO8PGL{g5s3X!P+bn@9=~ z?)ojmM9pLQdFEOL?gobVRlB zI>gc0&{KNe;Hp9=meK@fV$aAjx^%q%MG-6s2wb@{mpBMt3?ziruLZu0d)PV(>a~Ni z3hDmSV0rO%e%SPy-~sIoRmx;vFkPz?BI&MkiR|FW!NZZ7K!e472nr~d)rP1#A-8(q zFEHSpg}aOCgY#KHD|rc?M9>?RVZm3H0VJ;ERiO!UP5)Adn3X^%BjUa-ci4pg_kGCe zZxWUWF-l4#pmKGpsv}>5MfH~Q-ZGDwro8b1TaXNLWOhSCJ3HKrV+n`IWrJ?0z*6`0 zeBe*PqrX!sqbRND%iQ-hhNT~(#)$>)=}10n1nbeS8ph4Fshj4rind1$=d%4$N%4bA zc56jJj=9A&|Fg5}#KPq!3H}34U4s;F3)@Q9Z51oKM`zG4B0bhkH`?>-nb}eEtPia- zWAlu?Td~T4jI!+BOmZd=GQgEK7t>Fu$Ff%u8aOIe$k8WZOacMcR{kV=13QFLoAtai zNpzg*wR+`nWW<0*1|o}U6M1dS3;NQg$uT%T4vosQN;MXFdX ze-aFSu>4EXTk)^&QC}K=8xyuhp(Y@Hg3|gRJB3gqPT0UAM$Av1EQMif0&j|2?WWjP zkewqRlkZ&kG=xR)mPC%)Omfm-lika$dj@WjE_B_!#AEhIBLo-h3Vj-F>YXM-Ai*1|KmG0l!lk&0ksucV($(+5ktMj@J*ANvjr zeeiGmBVQ{2Z|P&UV8J{Y^##IpNo`A)L^n-(Qhwj`vs(+!pDbeVi`q40_U@xxJ(dR| z5g`r~`_SJQq{p=(%r3ryn5Fe5(_7dGkR)?!l{McFrmHpv?P_feL>7C83#8?RtAW*= zZ|qB~c@Cy?E?G}aei6NC+6wV2e15nZfQpk6*FUIhw9~|m+CjujM4+^FIjh|#qLTEZ z=Q`{Po@A(8tybsJD$OktTff*K~GQ5%Jba$|+jZswZxx;r? zx%^O%h9SnEt!O-^+0S#$#hNn_7pv;-&Sbu`-SnzW(DHiIV`!LzeHU16`eWz;3xV3h zax$61MoDy0B7{W^OBff{#6yuVN9>3VHtfb+TCNsnxav8zCZ#Sk2}K{q24&1J8F@)! zIeYtMdfY?f5eehGMS&3hSX^!OG(bBRU{duKGn90n4dbUPBauIA=d!~IVHW;Cl$oPQ z^f)n*7ZQbV_!Ct0(ckZ}$owpVV900nuI;kX2rR6hjHWaJp2aucqri^MZzVnlpbb7Ew_36*( zI5~|0vpT)Jyx7=x^UW7~nRRjQmH1lHaoYCvui z$yasG%p&YlAo$uAWY?WOHCFp2Kb5>FU&^+R(r453;hrOw^8?Ww_BK19&V1l^nn-aO z6cnw81uUeEXU;4#jbWIX4|5_aqu+d`Y{mgt@VA^gJTiXxRC)Z!$cgeFKYZ%s4RTmG zdcG`?_a?Ys!wiD)!>2?lI~xU4 zVTzCB+qnHK6Nbu^MEd~ChS1>T0MxKYBte)mn>l2RC~8nuqv5zgEWT~|o}ODdQhUDZ ztJ%i8`xZ1p5`-2@_hLAgpDnLZma{KNy5zz42a`6XO5m zy*|L0<97F9cXbCWZX36pK?)?mCcuzR`EXiB|38@w^fQdGyL)=HDP_R1z1TJiDKKET zF*ycO88-jbh9f*to=an+(`}vjXN^U%vym45E*1V3^ZV$>ph?G!lVR$_@|&pIsH9&? z(|0DsO*=A|(DWU=pj!n)sHPl(!JkG8iQQAkeO5Db<_DwJ?epE$%N5pqOSGJtE zJv`&fufIfeIL#*?zTU{v0?tS5%=!$Li)swrRZZYf>~PK`$E-8+V-qJ)H5I9@ve{|B za4zWVTl$cm2I?iH?$UQL2b$#&k|hufF7`9tP#laTr!!aH91Iw{S-JOWCK{FFCU(xD ztqsObSdJ4i@6Q52zBI0JTtf4@7t=i*HE>kHiox(@$9PtGE}ck?c31bgy!%LxzQBvOP2qbfnUC!Q3c><&VYu2fLoyaY*#X^PlHr@% z`Bo8O2oX<*9*_ZZFcbrJ6V?nDVMMgPAqm&1rO-_af0z1PK_xnulxkdoSjG)N?MF?1 zP}NXjb5ahuIvZ*BSLZHI+$jNl^U$?W2r{}Fy;P(E@$PQ96#rm!(bzO8y6EJ*ToagV zE=9m-p}__FL26WOaz*fKZCLk~lzEvb&#ssX{T-E_oLE1bH(%HJu1$1{1Ta$YSoKC= z-`oaZ4w4t4*Z~S=4h@KzGqnKrS~S_Tgq0-yOhTZ8{v#YmNUxxMTKK#3NM3##23)&e z!|%CX!v|fWyRBLD;Eh5XQMJsjHO;pP3jY0GlXn#8OG-054*)b%;z5QGaY-dlJM|iN zP;#$h45Y8G*-V3uxFayo_O9d~XQC52o1ZqnmjN>`?qNNX*JoE$(|A{PSO48n)s9`` zxs*O0v_2v_h*6@a47NsP@Q|;IFG%!tzmhrmFj%zgaT$ELl_9&8R6Asr7{9#Gc{_L$ zygIccX4{`NtCq~OXgQ|>O2|`43HzMmk#GY)=Syq0RQGFXe8}{Vu0zi>F2p^Q{w0H7 z`lm|2Lqnt~27LpI*m;NJaHtJt=850U&J>LVQhfRrE*1k1c_I;$83)8ipMNFj-;Ep@ z1E1^IG};UxT+c$|_Fd%&x5mr{U0j$wz}WjR+_B>klgkw{w^U~hvF*bs@W9p)7fj<9 z>x(dxY%r!l6i){rNFw%&6Vqf#0OH0M(y}PAOmmfrf4TuzSS*suv@hxwjVCHzD717R0z9me2zhPq2L}x2g zun|?te0EaiD}B0`42ap)i-OgNFDup_e`t2J2vt5D$A$YSk`1R6B@iey$~7%TCH-ca z{&JGu)|ubcPUEHRUA?DusVPlv7YTR_HjSr<^l|S*O~0mVxiS>If_x9)&pq2lx>^&@`%Qw&zbPPjS(PU~baPTkZ|(y)?@G=eU?5HcB35MwXdV zkP?hrYo{aeqxnbitgF!M_dTDpZ)y7VOy27?wQqs$5%eVAI_%LU1U9L*WkkkB3FrcW z7Ag$(z-=3Q8vJlW{m>5WmXD4`7NCi2-83gQl!FRB;HGSUO8Mw62WWPuxmn58l@Sg2*B{7ai|)lNwqbE-Ydre%80CtDIKj8F$r*~JH!mphW`JRMf1_*l85c97p@GKg`v@4Yo!ei=9{LWl@B4 zLoNuSuQLr;G!O$*Ur=@^3Zd9_XS&bfgQcC28M)cxviC}xB+3K#hMR<`s_7TE1vj>u z0;C^mg;2Nui}B!)XloAvOt36QMu) zhOkj!gpzBY!A)tzCPL6l=wLo2{ZpF6_N;eA=z9UE{4_AZU#LBb+j?VEwo+|0D5 z)$7}aguyq$38cIe%o6NuxlS|L3c}_F0i21PTCMCJSp;O(geg5EaK4v;!v}$HZXOA| zJYUeJq$aKLDrhZ3Do*7?ycF|Jw%3C{KNb~~?qe){ZdpPYLI%@@mF(mIWE!E#@t{-_NlVX|2%CREE z!T8;Gpy$0GdWT;M5n>`ZBJhQm<=i3WJVZC(T<(uykQ(rl(&NiIYq}wnsM@0W=v%sW zdiK?HG%f$_8~;$}Chs`wJdnFrt@8m}V>k2n^gMi*d2RS3YwK4igHHn9lL3D!JqO`v zS=TReVWPwW@PYUREKZJOVx@dmBDHcPQu#SPMdczwCu9tE@=AG3{1!)9y|cWydh_y9 zgU~G3IgyW{en6CHe?lc})KIJiZo?=iMfX_ohT^vnGb__6!{}57IZm?8*3$z6m~>&V z)YfP}Kpel>l@7C{h0Bxj*9ixSpjK}tF;(R3;4V(a_hi~i5n+^S<4SKcz=NlS6gA}VCwABQr9)(xDddz z4rwFObMRj7HuHOBE-}S7l*G(ax)xx3y(p3_9DyptZz*1#%hD{k5C#R5+BfWAeFW7) zIVM9578fX^_=kw-fuQ8R-s&mh?814;-BcC_S4nU0NN3VcF=uyc4sfRGKu+=_Dt=Os zRx&k{mWAO8i9+ZGS(7w#75OcVNLy%F3?4=GwJRjJg9CA9!yz!C*Jb-VA=jS4L}ct% zrqd0kb*uN8pwTGjHk^I1Xvn3t`fOdPBFx|hO27@FIjf9nNLn~BBJPUMJc8TeW4?=< z9g>(tjmegT4=PFB6xKO)MzPETih-axwtFVFnqhk}RK=TwUfH1(_P!azb#}%5HaR=M zk$@tRQ>Ng$rOvqrBytxPm^%s1`XS0RKpv?B1D3L)Gss7_1|p&}vz7G8&SDI*boZ$k zt*du`{Bvcl`J}(aaoCtDnX|!BGZEHS2sI$Z6pM8c)j9Z+BSEZ#YF>`_U?OXMesZZY zns=i+zU&sn%8s57iZS>E+88!oi2uQWrpRofohoaO`=rKpSLQ1H*lMOOn%YShIvz+r zOB+3?4#$BcC}*Ms5L;AC#~d;=Ap2ETuf7 z>6HXA%_wz_4Cccq>RTOEPmIK7)?_MOn-B_c$HB&-k?-5bZkn*ZsavfKHGSrT44#ai zvr(=!-%SI^^$wN(n4Rh5d7JT}Qqs5CCkrc>;d#bDU0A0W8&g zSC61_l}ZZKuyaAxaEU;F?Ps^1t7D;{fqO~t3<|_h8=DoGEdS)`lPBKEA%ub-5`1** z&eISKkG|nA(XdG$0O3C*<%aG@p=O(0I;W0e1U$$d!1E#-8k-B%+zi1>WHgNkY@k+G z<}H~^W4Wqm4s+0*J)?o_#33NK9`8u!(%#Y2nfGModhmN+@q5Mb3nz~*q?tw+ zGB>}9Rge>BRZ`V%E?fnd!<{M40&d>eIGewQ zvAS5tBO>bhmc*q`6O93E2}3l`2~1DaZ=|A9>;?Ksh@((A2MnPoOha=SHX+1rJtO8q`N`EIuA3wS? zL-+6hU5_(%)A3vMF1dK`zc+OM(WL*}%!Sab_UeCmE^KJ4=FO>D?G}T#so9y6KVkK5 z`wI`*@2?Mi)|xG|KSl8-Os1|cX{WsZH+PI123XA`QEwWEe(Qa*q5XLSaWU$(8M2rZ znjZegulqfx4kchBFq>Nn-f!hwhDfZlLhfyIL`!%^T=e&^Zb{{3+&{0VSiF^yb)rrk0 zdVpC!>c%dQU^TkfK>6Zrao`1LET@}l#ZJ~53Zv5Zbf>Q9k)&yK_Z=B4qYW*7-#$6! z_``QF2Ivm}OZVvb?QDp715^hqmE-v`RL%U1z!&bH`z`G(Y=beIvR*MBA0_g$G^rO> za5RIBf$?N`o=XLDil6*Q=u*v_D_h^)7B!ktbZmaHb7qT4M3e!S9BAWB;Go>(rkuqd zp%$VzKARyD7Qq`z&0Nu5_gJElK)P=MS$L;5l6@>hu540%5xC2Nwvp z(Z(MLgv~s8W{Ca+f$#?v2vgBUAryIS&@d^6}{m%mAAaBqmRnHcI9;~qkonO!Ye<~0rzsH9I``X zs;r>ZGoxFj8`Jm95`IOex%9@IVRB25g-kdc(D;;k)hWk z^g^!9Ce)AHl)&+D`~35EMEIrVAdvuoIV=i_&_Qg&ECKk+VMB#m^+7(#AWNUIW~31# z(iw)Y+{buM;egQ#TY!8_v#`7<4&`#85P#$YQ7g&2)W}|}#Y=S}+ENUweHZ|i>X;~k z=?T3fEWe-{$-;>9h!8;;SDdh@#7~zOD(Txg(nq$G`lM@^xib9lgP2Xrr%oPCSC=CXyuma7X&CEu~}UCJBQZG-!BGr^Ve>|w(XG*twhYd;L1h1 z@EMBH*;!=A>$VlLmSAtHF-P1P+|?idGL8P`|{sVw|b_!IBj~c2h+%f}eJbnbT1DULQdS8-Z*z3wYNj@TVu8NL z0nH;X7FGp)vw49S423npgD{IdT^JKS&98Vh`mFNd|F7c#hETSQt2^f!ESLPnSDm1;cuyO&1{g24CU`jDdxG(@c_85m$)iq`$ zW@1myAtEo#6De$u0}v!_R~#@~YMq9$ry8bLGr*5ZNnp2_1W@pDhv0s39`P{)cP?M>AbJ(r_i~o1dictU)+o-%cmb$4+Ru8P?aHWabTI7J?i2|gYXm$k5(Y5J2pn6Bph_x9cf#;&u>^E}7CaVp7mblEnN zqcyuXv>B?>RVU@(Fs8=Iy8MMbZ70T6fzTwXdtG(yx}Ewk_f{n?7Nj7-Oe4Vxq-M5R zfdo>c1qmeB&8!v)Bzl)#!3rc;fz)VOiI&(=x701syR-zeu(QAa^E~f4=hlZwCfQbx z##S6x-Fwda@x0IX*V||5;Hkp*Cig&x?dJtXYRrgtavhdI>})?$q;$mpIdM^A5)%vfo^ry~tzW(MX#_S%9DRA%xO0j@KW#Py_>?cnWtExXuXlWjd-eWe8G}i`4G6X0^mT;vwn*?9IAT+s7$__&tiYXYX zA}7TjbtVWHr)HxOYTJ~rN|KxFFe&USTrbrbCCyk;E(oNzh(e14fPIpGN?!KUhH){H zj~=pn*YW7&NQCk&k1#1dNNdGZ0gEi4B_Px|=%Cq|1_ThMVr>X9zc|#g^FsSjbJheU zC3s&A)k4jh4l(i=A|^$-E7i!MOhb!m%<$Pp9~d%&y>l(8X~+zN2L!Fgx3^H5-VYmx znu;3*d4B4Yq(JK*ZqkcZn&+@s+Qw=K%l5rYx7CuxY#l>6x@tucCl7rh(&kD55b_}D zv256~NsE(gZEo{A%B8neZ?!};jTa5i5-{uC)Q9$PahCTIze{hn^=5bU9O|zo>PLN6 z5vjTTEu+zfG^A02jRSDXWil~r^?pY-75TgGsV>2z%FS=SyHc;M&ORe&^-t2`YtTs! z_=NItZ=OoHh4JS1ZeCIFdY9Hev*d`a+6_L)UUeEsxSp&Xqa4wf)COJ4pk_>IDoa>G zvshb#mag@e#_551=M0e0=I$;<|5kG?eqKbeac!Z`)%z!9U0v(?;l_Pc5#xwL0FQhsJSwbr2*-hzeTEX>AwaO?)LSU&T z@}e)iB0up;i`#V4l4?0m?eUkfgNft*=IJfd5vBOGz>X9`N-)}GB2+7wn6qSHMt3Um z?*NvCm8^(C`XLgHmKXHJO$|%GOW)#ck)`pJFJ6J#7v%|K6UC|RkT?C*&N6q9gepEv zCzO!TO&!S_mPj|2^tswndj2Xs*o7z_YfOOttRa5|XCox(IDMP~mi)?jp$L((O*K=V zy;o@USN2kZ7&OPRN~i%P%d{_{71AeEY91`cLFw>VO1sNG$avJ&s?xH*=ma@GGWyWJ zDh^qM%tC)3x#weA#rMHm>z5{_(kQkZyFK-ITh9;l18pj{uJtDDgW{w>+oq*9|n5}yV9A;CmF4|3Ei8|0R_dn=!y2t^AHK^ zQs-pIq{=jXzX!KjjcU1Z>;GgXt*H|_X<%x^Wambzy4p))`A2=uks^hpVBGCM6|?l@1kDChgwpK_xJQZV18>9>=+*PBCwdrsNcxya!j2W(OmDneC{8y;i32tpZv0SGHw z@!AQy@eMd`4J?{S%h_Fg4K*eOK7^R$tZBi)59&Jn9r%@Y`WXYSZnvP=iZ&^5F z2aQ8J5N8msSg-^h8{+e6^Gq$Zbse1PhssJ%ZF9-~c;as}E+^Ey>Co#{ehd(z)H1`1 zlOpvysEG{89%9l-+1@u#1(={N;j1~tVfb6 z$;fUaa4M39=BYB<`bIP?E>6u_`D~1Dt|8J)K61|&nV_}Y_HV0~yWTe#H{0uzb3Uo9 zVQi&e!AMR%W|e;;mXd7mcUSx6zjINL}6(Go9WvhexcoYgoXwBZT))v_PNQ_tyGuJnIU}XJf`&8Qtb3R zM*RBV@Tvdi%DWb8Tg?vbV4vH!34^Jx(2mz)C%bI;q&uZbq*Qg7xfVut%yyx$PHbY< zPx#_eS~+?I62Y>p@G}uCu}*1vC7^S}^)e%P-z3C&54$>ia8%q>GU2+xV#FHX`bd3%wl3sUbH8ary=CAx1vVsIskg%^@h;29BTMOB&e--oSO48 zU`ltRYzf;HOklSoeViC+X6Ewj(*>ld?wm^8mW;p}Wlrv{WL$$0AFWv%zwq3!LV9d7 zoj8ff6my>(*PPhSbZak)f(jaEAf+Q|JN_RDx791de~X*xlq$d$*`w9@SFXqs_pLFC zwT!K9D=KLxaVTdvzQc*!RWNgmW5jsTRd3B4^9Gy}WOBa4i57=R&F z&{~Q5l7}R4SvrvQo{3;7Aa$hwZDcu%M86G9Lb3C7!PxyuS$;m#U3`S_+^T6q9COlz2L3Ij`nX~W3cA?+jHUQ zlkXq)ltK%x@L9)zC(wM>D3hhJH0}+RP?@^LxuBFb}UI-JgH{z}Q*pi?zYt5~TxcLsF=BY3l3-9D~(cW>Ps~&s!uwVgUzpN4qAnnZCme zK$-^t=c2<3%;ShyV*ZVLj$}vEr-Quuv32qy-C^XM+vr)71na+&9iC+iOMb2Jp9%hO zyNhP%gJ{T1Z#OQHX~uT7b5m!MwP9$>36;L_+MCiHX}e_|9dyjA`+uN$9+XC*3r0$e zk@#>O-yHzATR?Y6X6@1v*flH;U$XAnQbii-Gu8TK+dpxOl)6v+@kywTEL&QDZ7ZS0 z2ICg$J$hb2`?tt+eICvug>TSP3(g^oDQ^4~3w0N|Vu*4-oL)hhePrs9N8f7hCLUl5 zmHqZR4QHA8? za100|mBI(0Q{|1-VMpI{dFJG4r2o-PMaHFw4T~#GmT&|2>)^D~47~g0q2QNko=PdK zh8H@T14sbD{{r)}c@X7R_hhgwvcoQUaJ&5;rlc$$OqnpThHqxYB;*p%f!h4i)+oe< zq@!%eWr~K@M92ZL3ib7c!+mS?A#*Xd=?{ppwA!1h#-{ev`@k0YkM4Ox=Gt2B|BM~E zLePg(Gf&!&@7d`|8$0Jv4{bJ>jKzw0jmEXQQd^5l-y~;^c!U?f+Tqt88G`WPvIbRB zrfBsn%(8A@`RMMF-4@EBUW+&v%Dp?%Z4-aJ%O;|4ynX?E(9{OS9sZLtFi1JO2LCw909#@)VH{Vs43{{fFZQ=!Vz1A!QE((#7x^r(_ZLAknB9kiZLs(lF354`ct-VB1qint#dKGtptWR-xjYd+5<7XOPDHmy z_+zgQ;W3VCBxpCUjo1@*V9{7Ev=s?JuJTwhBZJ1QryaemoY^Re-HvlG5r;YU*0vi= z6UEXl+e-Mn{BMpNERmTXT7F4ObvnD@bA9c`Jxo51Y`_lDu^K!c$wP=@WszgYq|Fo7 z>WAvzYV~hD5sUw5AmQzhJpa`_|5@fK5k%`FIf9=WM=ec)pGa94yKCQX?#b^(%lKo% z!(ijqygLQ@YxfRwf%N|TUms}FD#+4%obUa7v;AM!`QG91d;WX#y>jO23KxmE^$)q@ z9{HD~wJUxCtCY~eYr!kQ;m+~O>fY7to~&v2C5`XONndO`huF*fl`q#onNaV=fAyXb zR@w~r#O-lUmyjR`lkvLUV&4hSB10zZg_|YEt#Q=bp_)3U&DnLy7Lgf1W9Kl7yBUJ(9 zbItNmM6)<`RgEZy8>8<(@Uq{ZOpA%B-!L}8yIKB`{rT5Ovz@xPogJMe__T2qM9ixn z8)|VIHkH1bUw^`K0;S;p^phyzP4r3Ak|feKfOKJn!u=w}n^aNBv4C2wZpFNdZ5H5) z?81mVTX&vwWD&GG{>4Jz%ws-o`t>0-DcEI2GczaWAD@}QCqHiMSWwFAL?{2m{`?#4 z@Yua?&gh*l{Skez{HZl*pKXms>b_a)RHl>%vLX>^AUfU+@D!E246Zn%T;yD1%OX6!8KZF;wa_9tHqu#3VLiSlSJLV4Zb-iWrTD|D=|?`@9Hv`~6_afB)kD z@;kaw!$sqi&(GjKPOK8$8GznT<~^Y@Aly{)%)1oC0DO;e7};dcH$++ zx1~&p;y1RG7yx+KQ_wLN6gW6`N%bMk(4~#9L zA9+Zwwha@Qp(>dQ;LUUP0-?i2;V;n4fFgjy6-Oql!)cUS|MXvc{msrHf=__;;Zm(r zYkh~b7rJ*mYd+B*=K5c2()#^asSwFE@3{9n&wdpR=+2)z5V!+@I}o@7fjbbm1A#jb zxC4PZ5V!+@I}o@7fjbbm1A#jbxC4PZ5V!+@I}o@7fjbbm1A$iyfkR}rDPhcFJ(lI* zDZmPCMjn8NH3`95K*F+5NeShGlT=MW{3fNi6EY(V>gfb85^*JUUf&W_@bX~V^Amox zF(}Ge^|_;k4}mWW{O|zf#%0|XgLMe-QF+%P$BxT@mD0ciMC}R(3!p`Y><=Ri zu^Nc&k$aa0iv)iK*&_F=GfhV$i%BSiv#<4(;z>U>@c4?g7wSbxL%pa7)wYFleRVmw z%JAnlS9P&*o^|j2?8`l-##h?$8n7VV8P|k(|6GnKTAW)_3Rm?~jL{=k!Ft8CdRp#m z8U9wBO+}uY8)UFp<{dFef4oX5SK{ADk7U0rjD33AC>iAW=l18{IWWGho|9W9+U<0! zQo1#%UeEc8u9)(Rbt8hME`lmd_k=aUygb4<2I1E_HLO%dTIZ3ttgOs>ET5;5mLj=I zqW5%#{_vx6%qV#G4Z@Lkwm_FaXzHUfoll@yTrAhVA6_%~c9Coj$w2f2lf%JN=sIjVV zJ1COp^%1`df8Veklym>i{u#DI(NbBbYu#ccXO+@vhp6P zceq*#it!|PZ79+P9Cae+zs#HhXE<&vR}u{>6`%eTVh`Zq)`~^%K`r`ZagBR)w6RMm zcV4K(YP@&3+J~ijq|rN+SPlub5FLj}A`lne0^r2B;IH%m+}MD-stJK(%M?ihcA=$z zL2hq=#$y`+>oY99>9l2D$Jo905I zz&2*Ru8S%XyF!#SH*$nbCXHTxLZi!Jq;RPi!#j7ee$|hXr{H+cq-v$Mu|93+PmL14 zTH&&9D~d->-kp8_Z$DoA&Zqp(11ZUJbw|#QE#2@>_^yqvujn3f!zN}+EZT7^$~%BP znc{SDXM0w(mNsWdu}UX&ZZT5{Yj6t#XS@46w_#cCiBYc#oWODAwUznj_P*l(C)zhw zs1@XWEwGrLU+%szPs_TEjg?;i-svp+@n3&w>el|dI6Wl<%|je%ZVr?ce2c z9(yA@-tKfdYc&2`y-AkQSK9491I4fl@&0gThMdpqa4VtKRj&bR|CbN!Yx75C3n`y@ zj=6j7$5JsMd8u>D{ne9my_M@TGXaW|@&4nJ$Oa0=7W`0VW~iQcoZBAc(dL9Kug;)d1 zu3GjxymZ%cy3~#&G7Bk0T%vOOdUTx8p~exWgH5`3y8k$^!L~g_-R{&O+_4%G0K?r1 zx@64Yk_J?HiTD$9lFoMS4-(>4eE`5f`bU~bd zv-hsEua-+KAHL0MRWmv>{zthDU|t#8MH969fxv8R8dr~ioikp->l zD0jS+e|~@dy#uWa=WeMJBg#y7B@#%H96uYq@23q8irH^djG|)FN(}9S^oonBtc6}J zm!F!OZ=XKbe*4vPv-9V!w&yR*KGFVzb61~yP}Qv$uUp0aLtfbbkY`G()WS-BWe`l- z17cWyovjgNR8+P*l&V<+;RQXq(4(s`3>YoeI7Kik!1jVVuKGwzP%e3WTy||p^}ucG<8OFxQr0acl`cBnKZKp1U7w4tx`kHkoj+|=mSbP4_d^EMeKH^_I)HI%kjk#D z;$xp(O0zLuX;GVWtD}h>y3R*Y^%#t@UM{Y6kXWIDtT{kohEeu&(!e*kRSq&;>&>t% z+X8+B)u0EFNV~A^2*9w^qOtNHl(}X!-)bqRu=R@(ou$$|od%7QL{Xmgi!h`s@viuZ zb^KM=p+(u$J(=ckJp7E?V~~alx(H za3mom<-^~bh6+sfGOS(pX~y*G`Vw6dv1M0ez=iD7OJNMqI~N1cG&=^?hsGj0zH|x| zcU=b=(@~gem`Or-{nzI7to8r#5A*B;_s;ImGSvRt{MmP#?_T*=s!?0wZytZ^BWR}d zw|qbk+ArzJ7U{?@{&)Z8{ulq}@8mE3t3OE}+rMVFeA|%76m2N*5fl!!ks0Gz+O&ds zUN@rV@HQ<+sQh>Ev^12QHwj_d^x>4ls>p&WYB*(tjeEX3EH;_1^{YMcnv zh9+qjx6Um07N5(rw)eP43Yx&us(aqs*^Q)87)hU^c?i&<8OJpn(x&98G%l(Z1BV~# zC8>(ChLb!s&TJc`c1Mfl0(1E+1gawcA}F4JT^p|wOgXf=f#E~tPSh>HPAy->_tx%`42eZ?09yZ*Shpzq0=*) z%13`~jJ@-i>ioL| z3)txz3QXexx{Dx3u?G-c;gHms7_qDFcT$`5C5!DA%=#28U3JJ@erqfUi-3Yn`T91d z=+=Q|uLI$fpFc*}!+ec)D$|NN*eYk;-(!pHn7M|n^3e2guy8&3fuGA`uYmJ60aeO(G}OEAk)wUhmfpL0L2ux8Nb;Ax*YUjBwxo% zEsu|VRbFyvG;#jw?B#PrJktBKS1!W(FPe^@xLXVcTQzvYHsjQ7>6phl|1~a67Dok6 zqFg=c4!r)Faff31$+a^=E%lkCv+|e0)5f{HJ-0aM-sE6F3&%V&pv9Nz#tOqQBown- zd7h_K;l9cHBDNQ}3QGUd!JV4i8`fzOa``djlK;2Fy*hUlO>V9otCOM zp~gRFMMv;1>|kod9rQ%O1=-%Q#-tq~C!Co(*w=OzfE!`T8*eT57(8({845u0%KFN4 z-6h&`RU9-<7ZptOWx)^uQPqmgUP75`t0YRaS91Iyx`5eCo}_5m-sT^;y9bE zNdrpu7Y=xF8;_VICo>1$V+JXNfn$b^UY~#bBTUHIpguZ=lR_GF8i{e^jbZfo8lAJJS$3{?9eSs)W?E7Y-l1b)V5teh zL@jjmJ$Q#bQ&E}ALOAr0R0jv3pb^r7qu=b&&|7U@Eqa@0KZd%RY~tlpSLdBQE)^lB z)q!fFA%kxb?U}9?c3p!536F58Xp4~C!Uf@+XV`M2aY>D5=Y~|KH>-0YDwm;ZyL%ml zx^_$;Bn<(yaTro~@g>JnfQT23ZE{X!2fo@moWPSMuz3@gq@e2qNF#ei)Xc#nmBNi6X#@gNkcdQu(E54wb=~PS>=tK7R(%PRCeMDwlGBZ+ z$-)!T?z(<;a)#y4Zr(yU3wL^FWKg-p3%hN?B~zaLMlj)gBvTa}MsJI*L>1*CR|lvJ z!t}b;S81nD?&P@8lYwYsoE^JTRb+pq79I)#(BQxHD7?qU@%5ZRMsTx^dph7Aung{2 z<2W#pIoV77>%GOTMP2-0s&sxI(D9yK$v#?1kBDx&(%9S2t*zsZ)cf>q$49SL>oLHi z4F>S`{8E;uJT`z3;6%0{mhvtg0fP%e(2^C~rY_w%oG+urAQR4W6XzRu6Tx;hLh=)d zpVa!$S4`4WcKS`bIe2D$sds@UFh0xcS!?qpWTpzksiA9G{70hUeSl0wAmL3ccrk$J*XIa#uj0D_RoP%5sufg&!_cpBeWq02_ z_t9>qk739uT{38|8AH+$?L^-4ob{KkSBC};jC&( zK(b2oDBM-J0x)QPnNUA51SgEiqmZl&-&hr`#LDHW5j3j(Y^$P9kviF{GRhljsuDFzLS`nF8Eu+$? zS!A<2x323Q#f9^BFU%PZ@+k*sFhp2c3-Hgg;Q9-dlhC%ZLeDtp+!haNhX$9TF0sIJ z!tAie05JHc=k7tfYbB=|+NtsOp)CyAO^ukn4u;ILPHEMsys z;j{L1?Z+Q$chY(nx*MJ1%1(&PB7a3k?JpTTlK3t455HT-p%6#t$)@LI=~#z9mM(`p zoIrFwf&~)(`XsF);5~xz2{B5S7V25@%i5aK13N(KO7ab`j6j^cRdra%C}!D;xx)!J z*3oO;)7iOy$zf5=2##)_$?qVttf0~T5iS!Z!z0fsZbxRI5{Cw&rXu_3%fQhS)rz(W z!B5-XgSFI8A<02&FY>Cy-<2SXx3AAiF|aOic1v-0-vgk;I3Pe%GeS>Iw% z)-p(DZ`O4UR$X!cON<$^PooR6CxVHSNQw4M0Hi(3OzWsKut1GezNzcR%wS?ENo-)x zE%$D^QLeN(Ng*v02)iT97|s(<&Y$B!TRSgb@9U~&en`hvPC*}}zHW9IJXcF~1pMpD ze_d~oPl93>XKap%6qX^&x(;-hnMVv%<N-Njh*z$NK9as(DlV$(@|0zi~<=T#C%@%M>LRcE<8_4~n{o$?Q${Ps#(p zmqOr#h&7fOZZa8@>1xE%r_)yewLn%lysk*ieme~c2^+f2Ho;wvtq zVX+o+eK-BW%u&pAC&~^FgZ96sbX!*+44mnb0)}#yWU79D1MX?yg*(ch27#{Lq?s7v z-+b4`-u#Iq*5!m!_8ZTNb`sf>`!GZhQH+S14yt z&fIkS-^HISfAGE&+2lpCgGmVEYMen{|7Gk1BUN9Lqo9aY`$3s-qaiEPA23NRe39B=-&N7B&7$Kj*B+|+RHDDAZ zb<>|=O}n$cwh#_joQSH)M`FK|GtC{SG+ zv*CHDtk#fEz;Wfe1$8Y6j7`*IfYxkyxY^$jQGPrzV|awa+Tt|^U2`My40#LO7At?+ zoX7jmctS^>y$Q~L1lMl*zGO6RIRO>r@i@MUJY6-~?n>dC`ZXQNU{KM*eA!XlR+OmT z4*<6+J#G#*6(MAt)Dbg;rGQ4F(>F^IXRT0qlM`g&WcS@r&cCY-QXufm z!-&cFS6<%RvgX;_&@(W1Y?+ubR@@63qSwG@412WHj_~3n=DY6bcm7;y&>g6kz&}-%eFPbrdDvu)dO2@jz~PueI(Vih=Xw#6#MLzp3m>lH^QR`%GU$0^>%7PCDbv0594zpDj)2Ryqf zkzFB2L|KYCS|9&dZwV38d0obZlQ~@xg*B{@f?+<~vkKUNIlG?=c`Ke_FE0r8hT*lj zWh+%hOfG;0#@&@eEKg6i7bJw74ys4@n8r44snhMw)1Bh|TFk7u8hcBlh_VwzsL>{R zUKxleDMN_G6jFf_h{*fz-{ht}UDE@%!ZLeJq0|{)m~1}{XrxNvQ0M?x+y&(R0%VNgUC4cu%&J&%_!6ndp5

8vdB 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�esJxkWq2D>g^IK=!)(OP23iW;m%r9DA;O`3kIV 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 diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 1a58319a8ea91d88652ec42c68b47cd4eafdb3bf..8279b3b7dd10027d59cf9787cab634ebbe2b0f77 100644 GIT binary patch literal 99977 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 K+Kc}=-uiE+ro2S} delta 12899 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 XocwcMv;%TWk|aG@4lj3JmC64DTFF_> diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index edde4fb19e9e378ea6c99b061177e6c6dea57267..d487ec8bfc063564b779ffb2c657195f43804444 100644 GIT binary patch literal 67540 zcmeIb4SZzBl`mA)ePy?^?Ol1Fyesc&cCWMYMzh<~(Tp{YJS&IMjO1uGni+XUV~;l; zT36jyQfK-@?%S;y1)FE{;ztbeBZf7^U_%TE#IS}KV%R_o3B(Y?8e&*O3^8mVh6EBw zz=i}I9{+PrRo#30L!*wiPw{F#`s#E9VU#F_-VLSMh*N0SoEZQuUo2_uP z+}hr3Hw&}naCR%%!4;h4^MZkbYgVzbq3u9c$dCv1`$ zQ|c;Tp{Aj$)Oc=YvsJBE+tsbG)ZX3k8f^yc^2U6t)odv}J#w5_-_12 zP&wJEu2&l>qehQ6E1g>CsVQBMpYnZH%^htvqE0<*oeJwgwNY)Xqtgl}noF(bR<#ng zB6QN>m#E+6Ar>2%$ zK_d#v?P{|T)I2q(7g8yb?;15ee{mz|MD4Jm-lryxHe0RECViuRNfpjCf~}xh3s!3( z#&r5rv)Mk;Y|qwe%?rqWtx{9TPD?czBRW!TRKklno$E|1JrYt+PU}xI*BqZcTRMJn z?#$wRY5vrylc!4aCyt(+o1ZJ4KK4iRV5n&@6qpL^G?T0$*#~;!@a>&OB}&qW;W^o; zZQD-8@Jt>FLF{q#c)e4{2$|tK+6seqsIqGEOyhi`d7&{IMPVC5GJ1Qf`H8TB(Lm#) z&gN#bMLlzsIxOQZA1*X&6?L_mLTAih+zcBP?xCC-J5pmVPmpZGpYFVbyOjtQ^ z@ZkPi4;`|p%enl;a((Vja4g6RD~ru?z}%wqxjPSd>a3pII&kRF@lLH>jo+!z!9P1pRpqu0Ox3A0^eopjl`b26HnthGFo`3>X@0fQ z4qMe`>mEJ+hn)sbfJmu(`WKhTqQ{39!d6IZcXq$0R}GVQV$utzd4^u z8vKAJpPd>W{C@Bo4__V}8T@{iZ-!9JEu*{4yvuA?q0A4B?K1P*$#yj=nD*b!mv84A z=&=>cF#g947bW;%e0(WrVWL5nd#VDBMOslMl_dDG5wV16kvCI6*>S`9*~T_HdE`V;4=cN)MJs=)Svwz8nr%|gAMHdzJwP|8T7Gd= z8UZ5*Jt9)#@C7ukWM6EB<>_>5bKbJfd8bJ@PUul;{_=;F+Jv%#l>_qIpnh0gwA8zn zP7I%ERPpjMX&*6zVfZUUx;iX($l^g8#+SqLMx$B|YGg_*hU?X+1__CGLkgT)sg|pF zb(I>M3)dj#Lny52*-9O%Flx6%Xy=r_3{4nyTHBxsP#K@rb0^sf zpK+Sw!^k^+?thYCe(KcKO+Cfq;?yN=rxJ!$CHl;;oK2mG0 z1~pPkY~On7Gf5Q;N%v`QRQlJ0ME{J=4WEE93mG?jx><)({EQ--`7=GEnN&xG@gv)$ z8l!5||4*UOGU46EP)W3>)>xnMCHRW4R$9LY)4o=SJ zQrhZs-G%K&YkgiX%(luiAG6-hANc#vLE6CHhC}z|o|gykl9iXI{gb>XRR_PqQMUb3k7)SvadoW@H?=Fh`M!<1HE zRA21wqIW8*|KuIY>i*yFPFDB-_OG_A{!*8${*$Dv{!)*u{u0aTFAW^kzXme<%V2Im zL}2be#V>d_`1Mu%^7z-+@Cyhm(!POTSMjfJ;@8#u>(B5D^8;_c)eVsr3`BYqE+gr~ zKhG_sP@|~UY)5nR_jamV2AhGc-dxL#E`$MaE&c7>v5Nk_8rFVu4IT)RzORu4$B(}J zp&mYsf0UkFtG1$cX@fudwl-fYJr#xJW~0*cLVbHUfz*zzLkG928Z^Gbc6cdAlyOy6d1!B>aF3$O#^I{+%ia%+xpPd z7O)m{WwTZ4L34Y$OzV7lO0S0D+V*5vu0%me)_oFq@Q~J1{3?cnhaeWRH=^}9b&byT z1(o{<2ya1;dna@rX3Z#IcUY{x9ytwE3bJ7`OvsaKwO&Zdmzjlve*&}N+5vSsz&fyAK^oW}lhuv^Sc7>w!%be3!+1DK!_~=Q5qHt~Y{qrxk)6 zHI7{6W*z9er*6`E_Ht{GZ+EH#{d}Fy9bT(qEe9l8#6H#FJjvT7?@oQa_D<^?G$ik2 zi$Ja}2gJvM6V|}m+e;#jM_2&gsP*W?ody5&UWh{xy@@1seV^KGx4NFjfEL<8YaL@M zV%A%L95*QssRXJzxR13XyoThdA#rbKZ^k>E*7c7T?r|%Km+{ z_wDr2zTQ4cB&of9YL8jt@_T6?H*7C8Y`;!gLHQml2rI70d{F1xu~@JGbwWU3P1P)! zMx=?+zj=dQ->Q=fOw%k2M}fq7*eUPol+Bw`qOYh?4j< zOqkoyi0mwn>Z~3p;(}=5>C6XkD7!+{AKiP`k4UXL;S$<>?yL1!>DKfhPyG zFe-=m0WD*TJ%*NDojb18ah)Gst+oL!k2G7biG~-W)k(Bi-7&bqDVg3oKl*gFI&&GU zuyCj73}CWHo0U*3CQprPV?5nGxJ$4qDm{FZ#UE+%$Ya?)s%JWz7lKx$REKg6U=N+s zdio3}9XBaTFOtapM6=NjYA#=hDZk*76L}lqg_7wCkc$4Tg!gKF)*xl+M!Ud;y_~6pkUK5 zrV~fp(g-aUOvqwE0J%Z77OfTpV1&$s3NO2?DkK)o*m|O{s?M#r2~W`)iMhTAqfva4F%n-WAF zeA|Vcb&wH%oy*|A>GaT1Ba`Oh_GJ_m4|7)`_YdUZxuvbOqZ?uQ{AsfIiGzUy>d~NF zhRhhz!>i3E+@GvD|)Wpw#fO929LpP)$-WOQ#(!k#|OI8>ax65;I)jN zQWW69&(Pg!`BWH%t*wv~=EBWpRE1~Qn^UW^r^0fG70>0chHMn6Goa9nn!2MCwzg67 zCantOwSO-?Ggv;xugLj844S-uL2KXU1r|X1U1HV@w4OELRcm33YlI^cPy|ub-5On3 z1wOGxYq72Ev$`vI#ZyZhlZ9fEZO#uYZMXt^rKcE8tL5O4F&f{Ay@aD;U00&N^11+3 z3ZI{2lI)!3EDH?(m7#KNrP53bNq_GD$vd_Ml6mxAeD8nx?iC3#d zD%lhZ9~|-+e2`FGCSy)5Br+bYfngf!c|DG$?sk=2VOvWVHL(sf8Lm-(hzFpQpoAcz?Vu!|7@HF6Js0Ff+#xg1fb z{)U=56|MnDINfP&);bYldS?LFFsm=X0jSYZAmq>C9{qB?Dj*~LCd{EK!ixH4`Za`| z(yWt+)L*Bkpju~!A1qf#5&3#P?3IP1Y8aw#(^E!<-JlMi?yN@TR&_NrdN$X;-*@Q4 z-%tw_4Vo@S{icHQGHZ|rChDZac;ckhnWvuC0_ev54W;=sDa~iJdZu3q$)SPagRrS* zA>Fx0NKNH27SCaf5dXSfU9A!zq|~$h3W~qUQIuA>6%q*6GX<3LXICjIs0;urVS0nc z=lT_!s#)iJA%p^-ZQK}Q;jpA0r+)?3n9y$`&&dAyO24wZvyE|-EPyYLX|*V;tw*cT z*;XsqhLMw4i$$;)rCWrVzkZ->k8Fgn`g%m58uvSj{1V#3=B5C>djam4YS82DL4L;;^}I@zw3*d}An^Iu0Rr7uJ|>zkPzl3Je(Fp?BiU>z-#0d+@RDej=NI^c46R8M^uemMP#Wi!o=@Aj*rCtof<%Ts#<|D0UwFQ#9I?5FaRq8b&v-mik* zjIm^e1W5{1BJu}rL{iFH=O8dyjkCZUV--&BlQrrU+(qN^-OMiEFfZ_87XAcaTDPx9 z?-10BchFaFYW1f3Hs$0=8TxD8-rdi3?cH_f+`+r+&f4wW4KS>ncXwT8fOj|Q=7b(2 z(+pGM){I^@qBtd^D9lB+*!1{--Q=Zwzy~hZ2ka@0?Zcj8*arj-u(JY)JMvlbJp!_rk^{P^xb;KyT9+| z{FMGB?vi!79kskTY6Hr=5H#97OgaXCzFH4z7C+sE+t$B$>$dfDKo7(3jA9xHPnAwElHWy0;R=;4$S}k89jYG*j^2}grj8r`KrL8Lbm2$3BAs{NJ|au zb4eIJyW+YVZCj+U5wi)?!a>8`We%#VP{tOKuv8B|9;0V7*gJx#5KgZ)T>AUfl1z{8 zruLr~zoQn}+fV0K<7x&j1`Nn3sM&G&RAM{DO#~j%BsAuD-fgc+#dhlgA*9AWA1JMR zWXJESakv5JnL)5|H6Z+}dp7!=MvZoNwtATT1GHI`-tGAPsKi0^d_BR2ekdi7xjl%0 z5iC~rseLbrCs-@kg2hA(`h0W%^}oj$4S5*YvK)GP^5fNZ>4E|2t^EFdGEj71 z3S%jVXpP9C^VE$Q{n>cUe@5QXtAY=gK9Q9|-?6V-juo&#Pakc7P~Gb@$zY!wGCgbT zHy~67+(7>T#MzTkd)(M{fjFOgZ$O+$NK1x541Tk0pMe`(fo|RobaPnD1?kkFhV7ca zW;g4iPX*Zebu~$QUyoO#I-N~HXpI4RjsZid0A%x+Li#!|hj*{N0BxdOkz#tT%a z0DQlR106y{Kp_H0;3yogF?ymohsa*FM@^7IK+VT-EW&Szc9hS48$>jh5EfJAcn4T7 zz`CRu01h{@GBc}6j2*qdKPvS*{ZXmd(i@Lashj$vQopO_3`z&%s(fD7Dn6hvB`-Hj z=cbH=*6ho~aXL3SQ8N)wYT&s2EULX3{Xjwp(4J^F`Dw%!!v^A!lD5|Fz8Fc_Un8); zoYkdA_&iAXLCm(j!cLSL{CeE=;KOl1gA0DMJM*;L=2{%SB2%ncX9$4+F$9zOc0hb^u8eM5XZ2 zCv?2+@lxS2$ubzrNq)>e9s-}P0HW_@K+NYfVkP9b9XsfBa8x1|##4`678d#_d?{vp z8`YA8L6ZY~2?VsKoJ(`a0Nk^;B!WDX%=b3X&YnUo(3xyv4-fBzarTsW=>}g4+3Y`Z z7TN5sus^67X7mV;XIGHP@wbC#-jUe}&rHAF4W5}CL<40e`~NQ!#Y~Xa4PYi-^{Qoe>|7z-h?hdva{nn6<~#jR@hk} zVpTmLBQeaVaKNWVa!L$XwHtPqVG4z$U_Na%a;AJBuyZd7I2+4z&-S%FD z8DEr3dz}dIatD@17=#+MA`rpY zYuKSOpx9)tKIlP@qA9`&~UT)@;E& zeyIR0I>>sL0a`YmkE64m$z0i_V;7yTY|@b(YXR@#aiJf(+d9^bfn3?7^Y_vw9q6b_ zZ_??TX*Xy}k0kuX*rfA}sJyouZ~m;+m|fA*&+P#IKS$d3D;f0__iaksUWt}&yV%$6 z6|K~2K+pQxrIc|`X{?NUieY8^UPenpA76=<9vFYuy+Ux?Wvvj*UWt}&NBuj&E+Sl- z;dfd|=wJ3OXVRtC6#9>~T~p{=b^nD0{jNt#!$aF4S~~r9H~O$g7+r~$z7j2cC0hDQ zv~=qiAX@tQ9&|Dt+w%1t%-gS%dHX^}z0gy}uFTvN^f>6Wmqey3u`LMhPa(r}w8kCp zVQkA4^A*?n^jnARwp<^%EX(!LE3qvuN~mW=dnb#ur{n$}jBR;-N9!~Fb~n~%Qh;8G zZTYZz@3-Xj7Y0{iTM}FH`pMKDNpK~$<$Xn zFXQ?VEvHt$lF^^SN1@pjIwQya7koOy+kJq&7v@CkU1nD=XD)d#dQ1t%U@^JGU~gC*){wI+gU*j9!RO*)=Ui(-2;d?xEwH^>}1YC4U*p#I+wsuJmnB zqHtXNO2?N|J>KLpUt?--P{5W4+_1S_YX+6qU~(?WPegMjFE_%0r^&CBKFo*o@HzC@ zOUp;R$ETQLD=ElTul1$MR_1C#_kK5{FH+pp#1T56-jG0JOo=$37Dpo?51f+MGYWs$ z754+2vHJu3;)^kI>PHzq-kSCox8!@*`XdXwV2@GshggOS_u^}XHYPRZRArVP13 zOZ^0m9m=RTGhY5^^8(##^|K6m4*$c>So|;Z^NhkDy5@PDysxpnB9o`PnpNhSthy$f zKZ|pJO-pdTe5D$d={TS5U0l3yEfw;hR@c$LZ>j6)pEFwBK>zN^sy*4kXB3}3*5D(G z=gc|GW*U2iGzaEz{4O}N6yQY3}}ck?6K_etlF0yo?OE@=QzT58wYUJCvY7J?)Cs*N6WHVx`A_u zKY@#bOLF?=0v~UT^VsMz;nRE|C!epR)c(OmEl5#G7Cy}7oW?}C(;PxZr!--2*5FbO zODXM(mWQXgjAhJbImS#%xOH#|Q&Iw5^Mb3^Ci(M^$b)IbZG%6ak&o-x^oT)eZ%ggC zT2db6lqofv)%p2Wpzx#L1uJ>ni^}h{_WWaYDGbfVHE2{0t_sc(HF4D(D$3}S?C*c&qCiG`+T#|_gn5+ z==*K=EcE&AS?IgbJqvyBch5rK@3?27Z`?f#eK)yhq3?Iyv(Wbe`#dG|O}J;FZ?Ah6 z`hL$n3w=1aLHJ`z=qtEqp>Lmi7W#_rS?K$qdlvd8-LufQ-##A{`VP2fq3>q*Ec8ve zXQA()dlvd`anC~EhupK!H|?Hz;+aBkoz~JL;Z=zB%_S^v&Dn4+(v@yJw;ABkoz~TX4@p-!bLf?{m7W(dR&qCiR_bl|CcF#iJvU?W#&bVix z?@sqD^xfs2g}$@yS?IglKHnn_2ll17{$ls4l8p>#7&5K8Zj6NJ)MoFJ4&ae`3VjuV8^PMjc=Zp8^g=>?Zy zl*+|8K`7mh6NJ)F#0f&_KM*GfrT4`NLh1c+f>8Po#tA~{-;5K4(g)%Mq4YtQVARV$ z6ekF!e=AN9NhGMNV5+?|y|ENnaissXC zf>8QMoFJ6`oj5@#{m0@2q4YCxf>8QsoFJ6`<8gve`cK3OLg^pJ2}0>(F2Sgre=<%G zO8==iK`8xfoFJ4w9w!K;|8$%nl>Reuf>8QIoFJ4w87By(|7@Hfl>T!r!6={4#R)>` zQ*nY&`p?G+Lg~K{CkUmVj}wH_FT@E#>Ax5!2&Mm0oFJ5bF-{OlpLPjG4gJe;f>8Re z#0f&_pTr45=`(SHQ2MXN2}0?=7AFX$Uy2ii(r4oYq4Zym6NJ)#!zCDn^yN4~D19zY z5K8~eI6)}=x8ek$^iSgiq4X8Qz#|c8|zY`}2rC*H`gwp3-f>BNXZk!;L{(EtP zQ2MnvK`8xtoFJ6``*DI$`X9szLg_c+1fleWI6)}=590)(^gpr*2PQ>FeKSrFN?(i< zgwp>wP7q4}lQ=;r{j)ehD19kT5K8~kI6)}=&*B83^jmR)Q2Meec=&0|+2}0>>ae`3# z-^K|->36NJ+5 z#|c8|58?!&^nZ>Mgwp>dP7q3e7$*p&KZ+BC(*HG15K8|ymtb_%kK+WP^e1tGQ2M{e z2}0@r5hn6>waQ2Kwy2}0@r6(Uae`3#ca@qSjC~XY`v4YH4ks8k0RmJG4dzkN{_>$ioPvW^2A5)v-;*Qy z3S5kw5N^PigOyn@SHa2=#Q>k$wYuv-S1`Fw9&7chAwsL?fi zC)fCPv^%ohw-ApRES7+#Gkx)y5eA}17&446A0D5#m-Onpu^OSx1;O8rFBm4=%v|Gp zE{p59042L`fG6MGx3Wc?U_=KJ;_^86IWC7VY3}>sF>{Zr{xJu8>u<$yJZ>Nzp^SkB zz=yj9(6Doam4eJ5o4kebtSb)Zd*R*Rtwk3;Wx5VQs%`B9`iK>my~cxNXZOh z38yykjbQ+(`SK8ZL%?X)tpK>#*T8yV1-DHAJ|>dQ;bOY~AzqpO$AjT;ZC*2SXP=>; z5=ZLeki2_S?Hf%tZ?va%omA%GWM;a&A>9?*sm%AMdhY(-p1VKG8w7D@GdI^PjbRMr z?k;SKn4xWf@d@)ZJiKUz_|O?zG)ulR3ujoopKuFj5x7J>n4;<-qUtF-o)0CcdP>Ig zp`FKZtb)t0Fs?C+&Ea;ePGcT7y_Io=!#` z$9oBfDLoxx^$4dxl|uS1dL%3R+_@C2QH|GdUSO>R#(FfXSIj9vuEXerVq9B=eA8>q z7Tw2)f{-_QEUUlD%RVlv4Ihz}AD3)Ppmm^!QyujN`f1XzJuXnTLp>=wbcyK;>QQ_l zG(o88$9gZ#cnlK+e~(f2$FmB5SVmcXGOO^XGI;yc?t0r!oc!fY92~L3t7&e=1722N zNHz266hAx-vTREYKRmrV3Tb!H08YsFa>6rNJ%(E*v6um&bO{!CH-`3^Z1)KZ=D5q4 ziahSQp^Hjz>w_M~#S@kIKrf{xV!~ax=j3yErH@pc^y^-A|m_te#6T*Rz}yq3TdWkxiQ01xCke!7tBKvEoY z0a?sLG7E_Q`lYGpSGX>iJ0}z^@{&D(9vHp7L-%Qew?}ZEBQAc)D*s4Oky|T0H8w4S_g99Kp0^C9qK@K%LEu2h<)sxYqNNLuw+@N!vY1|J38>4a@_oC2h z^fneD7Ttqcs)KC9 zdboK$*tSPQ>%tnys+D;9xWrL@j9$#@u4cS;>3*F{aM@`dRwz?&tc*I=kVp&E(1$)G zV%TcnH@fe;sR{IYY687Z4K`ZdOrX~n_9|P18MN9ZwyyJZ zZM$Asr*BFv^HFJynu;rWw&ism;(~vvH>vucW!29HRzH3ew-sZaLlS!ndYr1(dH-a& z+`*;9I85^AkU92=vd%0N{1f15Tqy)wyVAiON1ht;^pty~T;Pe}+c7tYAAUZt?#X1q zu6hK4EH%Q5?GjoDTPN7U9a40Ht@hjvFsZu8TxlA5ahD~080m!q+se57iNh7B+ZGeW z+Lt?&I%%rri`|ZCeczEPU%^Vp%F4~*hYsN!Si1R(?hXeXb7oxRRth=<_&QHd@Bqu* z!upbzbb1r#i0VAQkq}7C>=vHh)uv(!bhP**6*fn;L z*NFXT1qc>8Xabsix@Mci_B9^ZVUsv@=BPk-mxybHh->z4 zwYLBfVyQ-x5xXUwL?K|f=mKsC-OHA|DxDNZiEc%ib2027SMpv!7Zj(SFgH3e zF>24i{yv+W^KdOYb>=207N4DKxEv5JK3#%cfk~SbBsZpb?518GyGeNLrh%2;gY&Xw zP-26FlzJ?ChIK)PmwR$sC-19YOb&mk(W$S7EfF=9)EgK*tzg}bA8`ras!IbM;qp4m zlY3Lm+1J~gebOBI$IIR1ozZH4>XU=Lp8$`dseW)^4*(CK_(HIy<9oild9y7{pVJe& zk~+E&M@~g|mO>3FId zl3Dzv#z@WMT4GW_B5qZe_*H7o6>PcfT`F29inh#~e|uCzXU-1nufwhZZ*SZVC&n!$ zchGf%^h2^oW0`u)OIx)E$*MgLfvwJ9)D?cI%pJJ%+#4Kr2%m(*4(ZnD%MLkYD||vP z!Bmghl|zTN!ZKaK$#JNFD5?6pJ%vBao`Xc#xzy|ldS_37yqG<~z>ZivjnKkP2&M+` z)M|s`ha;Ich|M+D8X|B{<6w5SVak}DnU7v%J77$PzYh@={=g^ zmF}?xgNq+A;XD>*Y$TFohgmv{sZ3F*sBZ6v_r8yeT7-<^zQ{1z_VfxPT7(fHfsH(x zmk5UhEJ^)S1q8|cGwaoXKvL4Zp28ox>_Oe}RA+Ek^q~NNDB|)qp}4DU41BC;nypwj zu(xoDJeUF7M9lr3x_>YQecOfGSY5|5e?Nj7Z(YAGK=rD@Lp4EN$#<(p4|@8CJSN?> zn7$`tC^;7N>>5e%*Mro6hdhNp<>ept9@KYe_3*&f9PX|MojJmNjDwp!EiP+!9=<#t z2!R6;9`kg~JoL>A?tWw-2|LuGN8sYgpkZpykWdCkpAO4S+$s+Tz?mH6yIL^%5wV2W~fm(1A`dk)wkik|WGpCm|%9U_r# zX%Y#49wUPlD7Ued^ae#yw>L@^Ho)8HB{-kB9IMjauvu2b2HR?_mH6H^1YHLNK)Nyx zH`1TG7gG)7-DqAYMYU$zr5L!s;ZZe~!rh zil^`gX_kLPKaVTD2Ub0q6h0oq8N+%yX3-Ls7k1@PFC@MJ#!|(l<-7WB1cJPUO$y}o z!?C1QJ08pSer#Ye{wtvvUr#mvh2A;;0@{n_zc6sLW@J^S*&??vs7KRsp<1)G#EK=FTG}o(u z=#b03%BX36CHF-q-(=O&QY*y7Vgc?-rYoxRom-~RlIf+bHDuW&0~f$bPQC2uf=Lry zWU>x%R-)EreMPcTS}N;RYVNKesslkh(y5)7#sDiu(SyvEYZ+RV?-U?a~iW( zb}Ycrp>w!(n_Gu;)WSONpEF6+F+UOAK zy~z!@Z!m4xmAht0R}x+wUk1kRNyI%p$9c;eL8B4Yq7sD2wL|*z)XfvLjSz^Ba|q#L zQKm!*Fstn!fs~)t@Cx=U2i%FHaZb;#eJ>%<#)b+cp_TtXtL!xem`Ky-;7cA%Wyizv|B?0U` zy<%XGh=DyrgEYcI??3<+CuKm}6(JPWjj1|r>aF7@se}H(RgSQF_TpD&-;mn3%f8uk z{z)G>5d(}PyYNrnO$bg8MlJhE7PWsUjq1#k*?4dW^8HqHh{7+GIjH#|bK8)@ANp(F zL;5Vg^3;5)tB>_|^)Y0GR6jP&;>aic_hos-Px zhH`Vju&~*+ge6UYvv3(B8~ZSE*tqj2I(2w{<&(6MJ-pN*7(Dk8;#p)kB`g_M{587$N<8zPQC z(0!C*5o87U8enCqmioz-`aLZTQ<8!+PM-)up|*)?U)@jtjH?Gzt*3Y>#}qJ!y4wEGP>z62vRkmFxD%D2 zh8mU4V7Hw5Fe(#mL!nd;^>XS%APST45$Tt>p4DJAoI8U5!BAPNu6Mvm&`}EaZBCJU zT&kE9W9aM2aI;z7C}C^$dV9krdgVul^uz?5hJug(?FFzA$maZZHH;oJhSfx3au*O{ zvKqPs32h~PKOu++HXTP;VLQd}2t6o0g=p921$gM}wm&(f>AFKoI8AOm&>^(Y%lW=~ zjQaoaA%#CAeBW13_G@(dYn`7&Bms2iwkb`u>%dBDfdcE!ALZNd~QIeKOp6>UMbz zMDwYBwT{eF_fhv2q$6SYhZk)>5*~?_{|F8Gp&q7^6!6`y5qJ-}b`<=8!T-XLK1;*G zGiMC(jXWDIx3;lLKMuEO8TSUzks9!o_1MQc(|_Pkode7;l;0sZdxS0QKR@HnDQkCfqTMlTHMDf{_RO2E8>H{7lwDhP4J z!`c=HKw~IBWzH_>Y;I!zJTDtiz1=0?WRxb1$QmS6;Uv&UmIoa5Gw#B-D9q!tv-dY4GF9!LSGuvZDT64V&drKFq|=+K>%UCUENH!=cUv*zT7*G zFUvT-ybCH3C}oHNxk)s zVj(1y0i7iRA^mEqag?zubkXE{jhGa_zdO_&ygzA}%SKd!L4W+MTM_r}_c@bdU-pfj z6DIa&^Ia!K9LyrZj<6!KH?XLFYj(WrREOKLbmuZqJZ&v%q+-pCOPy7p2Xgi`p%Av4}u;oKL zA?l1sOp@daMX1mRG94DZ8?omDpRP~?SA0XbkEnip6}0^jE!*}_cUB3b0J$~;0n%uC z)2EYbc$KO+g)m_gxrq~NhVMfZ7~;tTTn)Y1CWFXr9e^+h5l&t}G`BqgBp+r+zU+E5 z@N0-xq0WrI_RYovU%oD?N&k2J+15HtQCi*K@PE%=Nffwp2*&_%?0xaD5JE47|GhEe z|2?Mf&5nFAQLVi91#PF+nejtcpFMiKyUsS%X^KL9E2hG*f{s`zR-{@p<=V{>6Haq4 zXJw{b1@~g6lO6p&LX>H9L_0!Vh72G?O+4WX9~d={BAvWaMM!7GUzw#|JXTrhrs`8f zm6QOYpggHm3jgv~?h32x8|{_ieUydCNs;YJTolr=zyUtN7=nT*m%QS7Iqt#jtiMP5 zF#dg;od}MYVmfIC;1Akh=q|_oMZFvND+ustR~szHSBh^CD@LIo)Gh?u5ooW6ezlSO zoQW==se7>`Ubj_WQ^fW3u~n&NrPsI?d8G{^+VsO?08q$ z#CCuYP3T=S*9)48pjyi`97edh*}-q(8Ih0`u7cv{OaYE3gA|c&h>PmS{&EwKgi?XG zxa^o9Q>UQ-s~EM&hV)jbr#e_4CGm6U5F!&Xa)%BbBUHD;{dwrnG8~5p3$QEaz|Std z;3uQ;jp#gzvLQZK{4yv7gVKhC;v^)B?7+aQ+??5`6K^*2#u1|`+t%*RVpGtfkK81y zA;3&}v0%RfnYkH6E3X6Tr7bu#< z#HB-OftwRwux?m~RG`trq9v7LSe2wJu?-rxN%NT>C>xIvGbSc4{3mpQ^fN2507|xu z4lSno6PEmf5Ayf=7bx)E4}*hif>%h8yx-=3fAM?%F;>;B@B@)g z$u*M`ol#(-ZCMfHrP zSaq}8&_~PAf0*keqy075rPLl8K{gZsNVlolN;8ZaA82Eifj_9%fGYyqF_Qz5OFGRG zjZ7;rv{s5CnGX1%$ypE|#H~bkNqrDD(n@qQVbZ49LTp^blYyi7iIEYm?pNDX^fCx( zVz(ha3nJhIAe}|Cqep5n_6UfQGDxJ7ss|5Xc&IfWBWjy1Oq39qdeOH#X!2;V*-P_m z*88;6+4PNlLwyif3#GVdlM!-l%?!_4aQWx5!=LY82#lV60r1; zC^v4S$!~?BvB!#YJq6-8zkIrhj>?|WqN4hmaCI*`*GOke*C%>%rRYI8)3C1`H*Z(O zYGiH0wxe_aIND@zR*WTjlA*gJ9o#M%wuWaAU{Kp0Ak@B+9j?)WC|Hb!TrAyKxT#yU z8%=PR^Wdm2*^IcbQH4~n$|CZsH2YaRm+#V-{nq=HMiLDi+0OS+@Q!q!Lm2!#q7DPcN^JFf{(fvnC@006uEot7e0k+ zi!9nALuIYitdrKKc>}S-7LYmF&VCZ*ti!?Ki7#ef%_4BuXGaOm1EW({y4*g^MxOka zU$b|wVTR<0_AmtW0B>>OdYuK)Yj&&>M~LAlop}~}WY)uqRil`bcXYx|=-KtNFuBh> zKPub4Ud!g%7w^taa1jz-`rYjKhJ-7Ugr?TRIAYDr)0_nv_y7#M(F7L|M{G3_@@oyv zL~g{&H*3`OKw;rx!EhiX!OUA>&qVIxy!4OrmRRfhi1g{yDlqTP!xBZ9J(Y(E4uqVE zL)Z~wAld{m+WDR+^SJg+7>aLM4-j2Dl+hCsR^rCPqM+iUO@zs@cBbZUV6D#<%~|h5 z#b69HoeU2+TU})%BHOUnD-RYv zmBb}Tms2F3FTrnu3Ye{0=$|$4FBv~@V=!dEldN;&Z)|VEfC<|avIFsg2?@W3SjC|Z zY)UZ4`REIpEb)AS(oC?)3YKZ0Dn-MuaKv45kJ-w%>_h+uP-CMGK!Yd()yCk4DS-VA z_KEwpxRBftB@ueqVut8y|L$s71B+AZ02Y#YOCB3>Y4Q`A4#bRP$k)QH06rIHANMu2 z*1$24(S(d3A7*C=pao=LhZ`}ZZ#Q}secE1T$|D835ddBR*om@X;PNg{Q+B;r!4&Dg z7bh2Q@tMG9W;4nj??!K=>KaA#xe`QLOAA>&5Ytl*Gx>?PfDoYR*di!10Mx~0BX7|D zcB1on&a-M1`Yqc*>zc-*McmLL2?EP$V&afaH9f>sqHRXVxV685LmfUYl^(yIqz)uth=(W(lsP9$UKpNP6aFmX!sCCx6WD3-0Z*g3~1h8-n_bqzLH%am^F;t zrDD*$SU&Cda_0o}BYuR95@Kg4^D_0flmRhi(7!~C8rdco6zdtRoCd_V!fKPXJ&DYl zVAdprrWLX*bx5cKxl9x&f*&FdOm4WF)K=?4H42M|9Wmwz66^u<_6gxhH~}CxFl5vK z&TKKT;XX8&1yKRxslq~(Y!jm%CM)%OX<-~^Z3EFBM^99-Rk_hVsBbX#JzO~`9_l9B zA0{{rR;GlnS;bf}=bhUZVx36mFdG#wnolL>3|4~#uJx_|n3sbsK)5W`ZL{zgfgby< zA5^ekFbTp4d%A`c;VwuuCL^8A~LO2x_Raf(&XARs>9hbMc<8$%Jq}7P{Ur z$*VK^UhO^MD2(&U3}XMLicz7w#cA3#NRpaP;BO$`7TXAWUAp5n80@C$krAh z>g{)rcI#SV6j&25=MGW_&wBZXlInoFSvZ+buT@~|vLil9IJjyb9(2B*lK;hs&-#tR$dP4dXN!5|p(J`9ypsL}(;k$cw~ zzKn&NY8}DjM&KJ=k4}714q_L6=xpX-VoTn76x?MQ>2dR+#)MpO2)d7 zB)`KUI16dRyXS~6FnYGX=C${Ex7UV@1R7ZwOmV~^kA+CF0)m^W^%4U|6rVilBebc()Q zP=nx$DZW6fv@YQ=YQOe|EK6`P0#BJqAj@V)=I3v}o7#JNe^Tkxf) zoZP~m&^E;+hRkd4vtn6hfFhUOe7oZ>I*luC9W{PJ667OU> zqYmN{hVkH&OKdCYCVzsQdkAV|U2Wl}t}>}hWArt`HldJQGe+7V-o`JxM*GH>;uXj; zU>HHs#Lu=7v-B;~L^4bLSpsEv4=^YW5UIh|A@w|T1*`-7LL@gZ za&a-KhtPa$+rWi@TftDQ$&Ximz~O*F5a)pq zUK*lAjE*(Xu$d9YO@ztS({d<-M9>WNgG_CfovBG9Ob``Oiugn1Y@>P2&bmM+B<4U9 zL9G6Y3<%tLLXC{&$lPM^Z;VTN2?cU$y}L#Q{YX3B(4F)X$k zQp zW1MKXjC6)Gjg^Ga<8@l~81ZS}2gbauuxZ4uv2*uZ72_X2e#)mD#x180;%x{DJ1|lz zA-1yUJ61Z*X=B@_IPE4V&#~MTXEFyGVXN3ZtB9s4@tKnn4ryNP*WpmE8qZQDOr|L{ z58MoNQ9R0|u8V-YuK6ni3iWUE36Pp->|H6$YZ5JfV&+j3#5x13i1d=8g-QIC#!3+? zJqoeU0AJb_8~0gpQkM2aZ{F^1`lQ4%Kg0O?5NDF=lf5l9NK<5Y=nqMo@z!ktE z905e7*mSo=#=Rxk52OghpbX0Pu_cmY=gua(Ur-bT5k>i7>Wc9`!!ZUZW#D)i^<}35 z>tLXQ-9z$LzY(Drp2QR;h#uC2vEsmEd}NoukBI-OVFL^(lTXszvV@R8tl|cX7^pKQ7Rgr#D4e$mwM_xcdo+)**hBmRUqcB-m^pm#B$q|p zmgaked?9ud^9TBjVAi5KsQtSrt}9kMB1Mis%TQb4G#NvON+YF$8EzFj5zVv9S(<1m z<~FN%8=gY3qh+`sSm$6!jWwfGGI8Yh_hWn0?;j}m#bQzHPNV9Mp!x{0NnaxkW{Yy` z_(=j7UNuDT+h2U=R{b@)+p2%)idBEbs(&}F`lW}j81)>>_zP&%ztv+Ji%kzn2T?T8 zq$ichS^l~i^wY+)Boqb?tMa|iGFWCU&TdV&&03^dDUQRSfx9J$AE{R;PxjbI)7Y;> z^usY+4=NPE&Fe%aVlyh5Fj1#|;-P~M;_-<02vK}+QNdGU%}PVbyI8B@wF_*~2-g9) z2^ChyZ0{qjC+b&d1$`J~A*kpmh2A5lkpgT4KcgK@Si)G7Z`rFgJAJteqC@*}My^rb zaSP;okk27v0c{C@%0?+CjK@;2x*Zq;4m_feB2wPl-$Mi!uU}Y0)AW)btii1UYf`MW zEkrC`YXrQ-2wx1g!Q^f?aeS}n|8f)IZnP^#KqydL0kT2p5Fcz_+b&|mB6cWmR!65$ zMhsM93w7FWOTA@{a%A?%d~wloknHnid{6z*`-TH?+4R5`Ut??t{)dOyt>G_=Q>lWm ztvFFeGX4qyKtOV6M0(4Z;FGYqJldBG9<|u@;1cK)pFi;@#1Fqf!B!G5bPpH}=cEJ4 z2B%^18aw36VP)?nz@TB?*_?uczW?;Qqcp&~c5X_yU4erDa3>4HDR! z1|r3e6xGkG7OaI?OD)e@?LB8t{)Ec&l4ne)p{$3MeJBi|eE?mZ2>~RQ@NK&N#Q4Cm z>LRb76-b;L21jwY%}O~=#FB-aH_DOP>JDSb1lSu5V}`wMvjKIb41l@O{-FDIpZj*j zBK$x!;MWV83F4k0OCzZi2T*6vbNwhz@5?Pa)YM@0d;+RBOh>ien4K7d&1IJ_7z$+! z!7e6XX#o4PXwP_)kGm&R2CcEm*@!HZRD@_+h7jWq67~{DIB^LEV51C_2nz-H9W1G> zs@sP(yWNy- zvbKT?exg?Y_jz@Q&d(@fW6)_pi-cox=Q+a=5&tu@Wj?cquURC1p29jF9pY1JQ2e1c zW*$}E`&!DZH|YQlDS#GSBO|q9$~%Uw;DGvRz<5ceDGSH6O2|h9@n^;5<#@wOVzd4P zFES$r7w3HBI~Ut`<7Tk1k^eewQ<68>n~4)^d5=pn!;3@8Y!(+7t%QB<$m-c0?!)%A zoXO)}%VQq*>=k&;S{5L3i*5q3Z^J;ex+#kVap8jGL?PP_+iNlDWi7*f%H9rtT3lh% z(!EI+`psmal<|YSs$bcmJe>MKeT%72YmV_cN{#nyiV%p3(=_)G<8L;$`%2}#ss<|-f#(v2)djP>VU7 zo~*5V;(=hRjh5^Q=AD4+Oc9SzEFMmQdv)l>>~tb3CpoTIA*Fn%G`Yx5Jk#C>G6s;~ zR0u(|qy9>jPJ#d!Ov_vNO&ZFq;mh#J)_wymM~SZPU%g?kV~7Ok&z`c2-6}7`Mi^3i z9Eda~6;NTyTp3VgQQfHhlc1J^w_{#}*5q?mOrQ0q*LD}i1j|Sj=;{G<%b3LG0VCYh zV+G7G%9-)1cQ3j86swL=q7RxIm&_m?kXYp+brgL7XD?So#yKwep8Iq;zbFMjMw|JkczMa3q0DlZl56 zloFw&9cfLD`|4vWX~}=+P%H(ozuSDZ90NjF>(`o`Ybw{lvk9V~J890H}$SR~TvQEQH zS;_tH>Fkul0Xe1t4iT`b!HBjVtS$H=;ObOjs^;sGC4^{a zn{w@zcCgp!e-hHpp3JQVk^Mfm0)K6J;xrLlb&}dOfBw?A7LDTq_JFclR<$m$*XkdH z1W=9^(#0Ojn>al+XaZ|6vRVy7)pFTiWq{Uea%dqTL6k<6L=oP-aSqhhM8c{ZR^zHC zyjls%NHTGPgJZ?#E+k`!GX-EK|0lSKSX*Q%_zys45!+I2OqU!p5hq(^p9UJc&t80M z4^*kKtJKmnqL#$m*QsSad%<2f&SBUb*~Bi{tLJ*bhI&A4fwS80kHo_oXOY( zhb(vY)_T^)mF|dN(v(QJi5tJgz9b&%kYixsrn1f1qO1-}T0ADhE@B3oZWssP`^zJm z+$gK6v|6rWC%PxY0XEn@g_3RT=w{eJ%Klro02WDbl&wg*z0nvUS&YJPC^uyQGLDaqm_9fNc)@7b+Y_$)!s@AtUz?QC?;YgQ(1xo#qP)N~2c=ivo9qaPNZN?FD zs!37pg3-GkX6M&=;5jzAXTHq=bC*j&B_L^$Sc|Od_&FBtDTSl#k)GoGqiFOmk{6Lu z^Gio?qxf>O0B5$xu1?}(wtC_e0-e4~|oUIL};N~T zL%VWVjcA8#cDFbc^4WdjbeO^pi&LP2y(Qj8vw^+W>T)qW1e18AX6 zlCJ~g6oLU!Gzy}S9V(hLaTra|8I%1=R6(N{PQ(~Ad&&7wv3*t%U#1Yq6foJBM!D}X znY>U2V74xagk@BewIvclJ1j#$e9ClYwBnm4jB@&U`?1myk+*y+ZfM z!A(q~a*GyI!m9~5l~6S33riun8CX&8U9=V0hTf`Mno$v1 zl(d4$QWIIn6}Ae{Jn)C;KeP=9K4{z$x*!R^1hanRWMCiPQ)3oUUS@PjZ2rC9Tr9%M z>bTYwiJ`+l4^@+Lse~wqNi8JAUzI@C^7knc=dW=Xx?^7cz-`upI_qC+vp(a1aK8^x+}h zn$Lc5uZwOsKF6(}P6v$7rR%5CoyKS1`eM4<`25%PH;>;7VDZExLiWPY-_{?t(*1m{ zmL4=ftPhC7Aeh-3FHB@h9uOxU0dOsrf>PKoFYVON-w`BdjFlV%w)p`EJr3;g2g>r> zot_@9J5}++N#M>unYdkgASd@Uw`n}SDHuG)CxKah=|HX+Z`K6AGO!gM0h6i_?|&re9j`=GFgoWH8WbxIWT$P0s@wY0{0?xc>>r=vQxn2`qCGGxgIWJuWY|rxQL#!`C%I~KWuSa0;p>Z zuL+}FcwMgbVZ%e-*Qe{w4G>ns>jGUIDhJzijpuFo}!3Fb zAOQwGC(7a@PALDOp8~;0w{s`?9N1s`%jcyWN_i(bxu8#u#UioPpk4n{y^Q*-4`Vio z&Zri_2>H?=|Gr1uv%X5>8t7;t0Z#+cg#=V*+%hl;9Blf42stb~V82ep3Z@$)vC97} z#;Lx6;z>z5`0+)u$I%ItjKfbF0y2Rng2I)7w(GL_U=AfY`e2D0v+5Z71$01WQymyt zf<;{F_s7w%W44-4*}wd_gcebD=*JT&{)O>nmfMvC;MgfdB0^JG?$Lbls4o)sN!^kX zlsbZPA!W8ly%b;HdGuylLD|G-O4yM{Z={u!oq4nns@WeNol56XX5CRRt&olm7)3PW z)D|HJs2iln2z9|71vhc8?z@}hn5w9n97qI4JhuF(jF^!X$_*y<^0b0| z_wi~I=a)&(<+U}YZP%Q+U9+(rf0@knJfO6up{&Y8S!JNC(ka9!zhc*ETTSU5Q|+N{ud-{A=WZmB^HZcIQp5 z01$b(ZFmWVf_@T{83|=|yG!Ul2)ZW)TJ-l;MS5{TG)n4T#H3xeuVHb;6E}_|l!}gU ztKlXxj5tKoJ?Sty(zO&lX)o?Y@QctmC2`6Q7ZtF}Pb>zW8dmX1x`7gWP(#BAwmD5f zTQU{21wrx5Z_%kKa5uF0V^UNOEDhImNlKVks;Vw;_R~EJ=>3#^w5Rp9ofO&|F(4_m zii#Zz!^!a^5t9)@?&m~or34=&LZ*F`;6vzkO7Ov&mmzm-KDx|;E9&~Jfc?ehQS z6K66kjd|uKJMXNvH$A;QZ^_VztfQhWvDkdc|m{y2K}CUoe$ z^>u|)^ARN#I-w>FcuDpB0P)C#aT~}>`%;^ z$>#>fsIfGRF{E~dq=qo(TO1FrX_P~eST7k%$fr8@v)tF(4a_1E;ODg!T92ba4)Y?9 z%kgs^%cEmmy(6|4xRc{01|ec~lqV_@R$!O}aelv|1Rq2CAP^7|!DaAZ5zP|Vn+IoX z^Z+!p1hJIGHJ0-BrC&C9$r92%P0GT?3Ah*kp%VmxkA8Abk!)df7Lg-lWDz+CiiG6| z)`n;#xJC*@G+&e*KQtZ>`_`XMxqEaHoS(LsH)AcYzEoivR8i)ZMaGszNxpABG&wib z8Nt4Zib=T=*3>Bi`_`eUv|eEM9hy$@FCzw@IrJ7)fbBk!qRo0rDaf=s3s7)&i-Zw&DIxMHZdsyYqFlZoRoaQMq)w%`G+$1mC_kjCWJ zdxmD(4bj+Ou0L5K>j_OY`{Pidkt~jcM8*i@xz*`T6xN-*R!Kq21c)qtl|`JBW(g(b;RW#Z7fn6A#It2v>AlR2sctO ziC7CL2&)%NBARrf6i^IcMPSX(+aCJa(;Gu+XpYfnc!O~j+S)YWxG)+zjw@dU&WB9q zUSYF9dhwHP5Xc6>T#G&BP$=e$#*~o4e9vdG>CfBK`Z1e1b>c=5tAAHemO6dtuoS zc-5E^86H8b8;u$>A+tUKo1e4Yqjj?#7Z_v-uFd#7H=r_?J?>=g?B)gv` z|4xCOJX%0^3+&?2mKpm6?AQl`k#%x_U#X~=03f!>>~N6XoZh_x!3PI42iY&MZy(d> zLG*IR%5F)nSgK+_RP&|X%ZPz^OmEdEfy$*s6Gf3#eP<8b@bj^g1_fBTSn7~H(TKkb zZ$>(m)d@sQ7XPR^0GaTn$Dz0L zd5iZo!O|5)Ca{C7#n{^~ESzLRle4drmDOFE4eTrQ4>Tn|h7k3vz}zpEQG7`+Hqmne zd;NuCcJ9Tg^n$?t`r@o<7t(0Hm`U?RgXW6{=Do)QGcO^^$eHB^h|M+Q%%TA%?XMXv z2%pOWULcli+_bVDJ1t_J-l)XZ=Us9v(xTtX^?`Sh(Y}nz{^h(ViiEd=Wv)Kv?MaLb zfW@Vc+%AV@tebX%Xh1YZV%Ubj=Gtx$OOvbn<^A9-*Z(r4AshrRcAE0@2Els_7Fl`0 zZgF%QyYUv`O($*TPQqDWTYmKrv@`oF^G%oGG_d8bDC3WVl_OmSY@qz=l@D{i1hdw2 z5=uLQ5&s&aIQMpjp<8jUe&*Q4A|J_cMl4uvIREl;?u%BXkcf*xas;FAz!eRf!Gr7z%*XxPq47=R() ze=P!V4DI^w>nKHkeBkr>u%7+l^Tnovg6R~Cd{M%hz9`@xHTcCpWv@?TLpvg{Pv7?p zE&9`WnsfKnJ0CN4E}-o8zj(2%8QS?5D+u?4bLj9_g&;VO3qx=GwHT(I1WQm3TV4}L z?b^5;>-BZYvM+!qK?$m6OT0%*0Gt!HJD?D3+vh_qm0|lPXyLDOplmdI{V^F^Ylzk< zVJV7N`rJ_yr*#5|HTsk)YF)CJm>1g}>=0`bw)$~TTzKQ(Ss9bfxL*@HBQc$Tm~la%Z>Y*K1s%&h zxCHKr8EGW3>t-qQj{D7=iGK@K9@{n%-B^4aPA3n&!O zz0kjcLRJ4Z3Kbi(fs=@W!5Rjy9k{m*h{y*1CjxTVD;m985z7mH4Uf&*01vxKy3w{V zc~NH&bhS-r*QzXrvBQ8oNm{b`8W1_Hx;Vs8T-B1iix{57Z(Oa$PDKs|)N))VscBVQ fryyj9EXGwiFvIjJ3xAkfoTmM&b+fYcvOxY9rltj~ diff --git a/cli/src/commands/explore/mod.rs b/cli/src/commands/explore/mod.rs index abbcd2b4b2..52d0da83f7 100644 --- a/cli/src/commands/explore/mod.rs +++ b/cli/src/commands/explore/mod.rs @@ -174,7 +174,7 @@ pub async fn run(opts: Opts, output: &mut impl std::io::Write) -> color_eyre::Re Usage: subxt explore pallet {pallet_placeholder} explore a specific pallet - + {pallets} "}?; return Ok(()); @@ -336,6 +336,8 @@ pub mod tests { SessionKeys TaggedTransactionQueue TransactionPaymentApi + XcmDryRunApi + XcmPaymentApi "}; assert_eq!(output, expected_output); // if incorrect pallet, error: @@ -367,7 +369,7 @@ pub mod tests { Usage: subxt explore pallet Balances calls explore a specific call of this pallet - + Available 's in the \"Balances\" pallet:"}; assert_eq_start!(output, start); let output = run_against_file("pallet Balances storage") @@ -378,7 +380,7 @@ pub mod tests { Usage: subxt explore pallet Balances storage explore a specific storage entry of this pallet - + Available 's in the \"Balances\" pallet: "}; assert_eq_start!(output, start); @@ -390,7 +392,7 @@ pub mod tests { Usage: subxt explore pallet Balances constants explore a specific constant of this pallet - + Available 's in the \"Balances\" pallet: "}; assert_eq_start!(output, start); @@ -402,7 +404,7 @@ pub mod tests { Usage: subxt explore pallet Balances events explore a specific event of this pallet - + Available 's in the \"Balances\" pallet: "}; assert_eq_start!(output, start); @@ -427,11 +429,11 @@ pub mod tests { let start = formatdoc! {" Description: The `Metadata` api trait that returns metadata for the runtime. - + Usage: subxt explore api Metadata explore a specific runtime api method - + Available 's available for the \"Metadata\" runtime api: "}; assert_eq_start!(output, start); diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index bae52ba25c..ae6dbabeef 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -6,28 +6,26 @@ pub mod api { mod root_mod { pub use super::*; } - pub static PALLETS: [&str; 64usize] = [ + pub static PALLETS: [&str; 67usize] = [ "System", "Babe", "Timestamp", "Indices", "Balances", + "Parameters", "TransactionPayment", "Authorship", "Offences", "Historical", - "Beefy", - "Mmr", - "MmrLeaf", "Session", "Grandpa", - "ImOnline", "AuthorityDiscovery", "Treasury", "ConvictionVoting", "Referenda", "FellowshipCollective", "FellowshipReferenda", + "Origins", "Whitelist", "Claims", "Utility", @@ -58,22 +56,29 @@ pub mod api { "ParasDisputes", "ParasSlashing", "MessageQueue", - "ParaAssignmentProvider", "OnDemandAssignmentProvider", - "ParachainsAssignmentProvider", + "CoretimeAssignmentProvider", "Registrar", "Slots", "Auctions", "Crowdloan", + "Coretime", "XcmPallet", + "Beefy", + "Mmr", + "MmrLeaf", + "IdentityMigrator", "ParasSudoWrapper", "AssignedSlots", "ValidatorManager", "StateTrieMigration", + "RootTesting", "Sudo", ]; - pub static RUNTIME_APIS: [&str; 16usize] = [ + pub static RUNTIME_APIS: [&str; 18usize] = [ "Core", + "XcmPaymentApi", + "XcmDryRunApi", "Metadata", "BlockBuilder", "TaggedTransactionQueue", @@ -119,6 +124,12 @@ pub mod api { pub fn core(&self) -> core::Core { core::Core } + pub fn xcm_payment_api(&self) -> xcm_payment_api::XcmPaymentApi { + xcm_payment_api::XcmPaymentApi + } + pub fn xcm_dry_run_api(&self) -> xcm_dry_run_api::XcmDryRunApi { + xcm_dry_run_api::XcmDryRunApi + } pub fn metadata(&self) -> metadata::Metadata { metadata::Metadata } @@ -215,7 +226,7 @@ pub mod api { ], ) } - #[doc = " Initialize a block with the given header."] + #[doc = " Initialize a block with the given header and return the runtime executive mode."] pub fn initialize_block( &self, header: types::initialize_block::Header, @@ -228,9 +239,9 @@ pub mod api { "initialize_block", types::InitializeBlock { header }, [ - 146u8, 138u8, 72u8, 240u8, 63u8, 96u8, 110u8, 189u8, 77u8, 92u8, 96u8, - 232u8, 41u8, 217u8, 105u8, 148u8, 83u8, 190u8, 152u8, 219u8, 19u8, - 87u8, 163u8, 1u8, 232u8, 25u8, 221u8, 74u8, 224u8, 67u8, 223u8, 34u8, + 132u8, 169u8, 113u8, 112u8, 80u8, 139u8, 113u8, 35u8, 41u8, 81u8, 36u8, + 35u8, 37u8, 202u8, 29u8, 207u8, 205u8, 229u8, 145u8, 7u8, 133u8, 94u8, + 25u8, 108u8, 233u8, 86u8, 234u8, 29u8, 236u8, 57u8, 56u8, 186u8, ], ) } @@ -290,7 +301,7 @@ pub mod api { runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>; pub mod output { use super::runtime_types; - pub type Output = (); + pub type Output = runtime_types::sp_runtime::ExtrinsicInclusionMode; } } #[derive( @@ -312,6 +323,368 @@ pub mod api { } } } + pub mod xcm_payment_api { + use super::root_mod; + use super::runtime_types; + #[doc = " A trait of XCM payment API."] + #[doc = ""] + #[doc = " API provides functionality for obtaining:"] + #[doc = ""] + #[doc = " * the weight required to execute an XCM message,"] + #[doc = " * a list of acceptable `AssetId`s for message execution payment,"] + #[doc = " * the cost of the weight in the specified acceptable `AssetId`."] + #[doc = " * the fees for an XCM message delivery."] + #[doc = ""] + #[doc = " To determine the execution weight of the calls required for"] + #[doc = " [`xcm::latest::Instruction::Transact`] instruction, `TransactionPaymentCallApi` can be used."] + pub struct XcmPaymentApi; + impl XcmPaymentApi { + #[doc = " Returns a list of acceptable payment assets."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = ""] + #[doc = " * `xcm_version`: Version."] + pub fn query_acceptable_payment_assets( + &self, + xcm_version: types::query_acceptable_payment_assets::XcmVersion, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::QueryAcceptablePaymentAssets, + types::query_acceptable_payment_assets::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmPaymentApi", + "query_acceptable_payment_assets", + types::QueryAcceptablePaymentAssets { xcm_version }, + [ + 232u8, 67u8, 173u8, 246u8, 152u8, 193u8, 90u8, 68u8, 49u8, 200u8, + 118u8, 68u8, 139u8, 225u8, 161u8, 38u8, 177u8, 158u8, 83u8, 135u8, + 180u8, 97u8, 4u8, 94u8, 0u8, 232u8, 114u8, 119u8, 77u8, 5u8, 8u8, + 236u8, + ], + ) + } + #[doc = " Returns a weight needed to execute a XCM."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = ""] + #[doc = " * `message`: `VersionedXcm`."] + pub fn query_xcm_weight( + &self, + message: types::query_xcm_weight::Message, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::QueryXcmWeight, + types::query_xcm_weight::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmPaymentApi", + "query_xcm_weight", + types::QueryXcmWeight { message }, + [ + 58u8, 118u8, 149u8, 47u8, 144u8, 85u8, 10u8, 89u8, 29u8, 123u8, 249u8, + 209u8, 165u8, 160u8, 43u8, 246u8, 12u8, 106u8, 89u8, 20u8, 219u8, + 133u8, 189u8, 58u8, 14u8, 136u8, 189u8, 142u8, 123u8, 145u8, 77u8, + 68u8, + ], + ) + } + #[doc = " Converts a weight into a fee for the specified `AssetId`."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = ""] + #[doc = " * `weight`: convertible `Weight`."] + #[doc = " * `asset`: `VersionedAssetId`."] + pub fn query_weight_to_asset_fee( + &self, + weight: types::query_weight_to_asset_fee::Weight, + asset: types::query_weight_to_asset_fee::Asset, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::QueryWeightToAssetFee, + types::query_weight_to_asset_fee::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmPaymentApi", + "query_weight_to_asset_fee", + types::QueryWeightToAssetFee { weight, asset }, + [ + 86u8, 75u8, 169u8, 75u8, 0u8, 231u8, 241u8, 122u8, 197u8, 232u8, 188u8, + 66u8, 247u8, 240u8, 170u8, 39u8, 199u8, 82u8, 104u8, 16u8, 28u8, 40u8, + 214u8, 232u8, 177u8, 212u8, 117u8, 16u8, 181u8, 240u8, 33u8, 126u8, + ], + ) + } + #[doc = " Get delivery fees for sending a specific `message` to a `destination`."] + #[doc = " These always come in a specific asset, defined by the chain."] + #[doc = ""] + #[doc = " # Arguments"] + #[doc = " * `message`: The message that'll be sent, necessary because most delivery fees are based on the"] + #[doc = " size of the message."] + #[doc = " * `destination`: The destination to send the message to. Different destinations may use"] + #[doc = " different senders that charge different fees."] + pub fn query_delivery_fees( + &self, + destination: types::query_delivery_fees::Destination, + message: types::query_delivery_fees::Message, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::QueryDeliveryFees, + types::query_delivery_fees::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmPaymentApi", + "query_delivery_fees", + types::QueryDeliveryFees { + destination, + message, + }, + [ + 248u8, 169u8, 153u8, 16u8, 58u8, 94u8, 83u8, 239u8, 80u8, 12u8, 183u8, + 141u8, 169u8, 8u8, 137u8, 178u8, 241u8, 228u8, 241u8, 66u8, 89u8, + 202u8, 78u8, 125u8, 240u8, 248u8, 109u8, 41u8, 189u8, 119u8, 20u8, + 149u8, + ], + ) + } + } + pub mod types { + use super::runtime_types; + pub mod query_acceptable_payment_assets { + use super::runtime_types; + pub type XcmVersion = ::core::primitive::u32; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::xcm::VersionedAssetId, + >, + runtime_types::xcm_fee_payment_runtime_api::fees::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryAcceptablePaymentAssets { + pub xcm_version: query_acceptable_payment_assets::XcmVersion, + } + pub mod query_xcm_weight { + use super::runtime_types; + pub type Message = runtime_types::xcm::VersionedXcm1; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + runtime_types::sp_weights::weight_v2::Weight, + runtime_types::xcm_fee_payment_runtime_api::fees::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryXcmWeight { + pub message: query_xcm_weight::Message, + } + pub mod query_weight_to_asset_fee { + use super::runtime_types; + pub type Weight = runtime_types::sp_weights::weight_v2::Weight; + pub type Asset = runtime_types::xcm::VersionedAssetId; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + ::core::primitive::u128, + runtime_types::xcm_fee_payment_runtime_api::fees::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryWeightToAssetFee { + pub weight: query_weight_to_asset_fee::Weight, + pub asset: query_weight_to_asset_fee::Asset, + } + pub mod query_delivery_fees { + use super::runtime_types; + pub type Destination = runtime_types::xcm::VersionedLocation; + pub type Message = runtime_types::xcm::VersionedXcm1; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + runtime_types::xcm::VersionedAssets, + runtime_types::xcm_fee_payment_runtime_api::fees::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueryDeliveryFees { + pub destination: query_delivery_fees::Destination, + pub message: query_delivery_fees::Message, + } + } + } + pub mod xcm_dry_run_api { + use super::root_mod; + use super::runtime_types; + #[doc = " API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API."] + #[doc = ""] + #[doc = " All calls return a vector of tuples (location, xcm) where each \"xcm\" is executed in \"location\"."] + #[doc = " If there's local execution, the location will be \"Here\"."] + #[doc = " This vector can be used to calculate both execution and delivery fees."] + #[doc = ""] + #[doc = " Extrinsics or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`."] + #[doc = " In those cases, there might still be a valid result, with the execution error inside it."] + #[doc = " The only reasons why these calls might return an error are listed in the [`Error`] enum."] + pub struct XcmDryRunApi; + impl XcmDryRunApi { + #[doc = " Dry run extrinsic."] + pub fn dry_run_extrinsic( + &self, + extrinsic: types::dry_run_extrinsic::Extrinsic, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::DryRunExtrinsic, + types::dry_run_extrinsic::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmDryRunApi", + "dry_run_extrinsic", + types::DryRunExtrinsic { extrinsic }, + [ + 24u8, 53u8, 81u8, 162u8, 167u8, 91u8, 190u8, 223u8, 205u8, 65u8, 60u8, + 208u8, 121u8, 112u8, 128u8, 209u8, 131u8, 228u8, 187u8, 89u8, 8u8, + 183u8, 166u8, 44u8, 3u8, 82u8, 148u8, 237u8, 14u8, 89u8, 221u8, 150u8, + ], + ) + } + #[doc = " Dry run XCM program"] + pub fn dry_run_xcm( + &self, + origin_location: types::dry_run_xcm::OriginLocation, + xcm: types::dry_run_xcm::Xcm, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::DryRunXcm, + types::dry_run_xcm::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "XcmDryRunApi", + "dry_run_xcm", + types::DryRunXcm { + origin_location, + xcm, + }, + [ + 149u8, 217u8, 21u8, 118u8, 78u8, 99u8, 117u8, 101u8, 189u8, 120u8, + 191u8, 244u8, 32u8, 19u8, 126u8, 221u8, 33u8, 192u8, 17u8, 199u8, + 147u8, 137u8, 70u8, 55u8, 17u8, 173u8, 189u8, 190u8, 137u8, 196u8, + 102u8, 59u8, + ], + ) + } + } + pub mod types { + use super::runtime_types; + pub mod dry_run_extrinsic { + use super::runtime_types; + pub type Extrinsic = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > ; + pub mod output { + use super::runtime_types; + pub type Output = :: core :: result :: Result < runtime_types :: xcm_fee_payment_runtime_api :: dry_run :: ExtrinsicDryRunEffects < runtime_types :: rococo_runtime :: RuntimeEvent > , runtime_types :: xcm_fee_payment_runtime_api :: dry_run :: Error > ; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct DryRunExtrinsic { + pub extrinsic: dry_run_extrinsic::Extrinsic, + } + pub mod dry_run_xcm { + use super::runtime_types; + pub type OriginLocation = runtime_types::xcm::VersionedLocation; + pub type Xcm = runtime_types::xcm::VersionedXcm2; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + runtime_types::xcm_fee_payment_runtime_api::dry_run::XcmDryRunEffects< + runtime_types::rococo_runtime::RuntimeEvent, + >, + runtime_types::xcm_fee_payment_runtime_api::dry_run::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct DryRunXcm { + pub origin_location: dry_run_xcm::OriginLocation, + pub xcm: dry_run_xcm::Xcm, + } + } + } pub mod metadata { use super::root_mod; use super::runtime_types; @@ -797,10 +1170,10 @@ pub mod api { "validators", types::Validators {}, [ - 56u8, 64u8, 189u8, 234u8, 85u8, 75u8, 2u8, 212u8, 192u8, 95u8, 230u8, - 201u8, 98u8, 220u8, 78u8, 20u8, 101u8, 16u8, 153u8, 192u8, 133u8, - 179u8, 217u8, 98u8, 247u8, 143u8, 104u8, 147u8, 47u8, 255u8, 111u8, - 72u8, + 203u8, 103u8, 117u8, 19u8, 54u8, 45u8, 218u8, 47u8, 46u8, 93u8, 221u8, + 120u8, 188u8, 43u8, 183u8, 253u8, 108u8, 177u8, 242u8, 168u8, 97u8, + 191u8, 129u8, 190u8, 80u8, 182u8, 43u8, 75u8, 126u8, 241u8, 248u8, + 188u8, ], ) } @@ -838,9 +1211,9 @@ pub mod api { "availability_cores", types::AvailabilityCores {}, [ - 238u8, 20u8, 188u8, 206u8, 26u8, 17u8, 72u8, 123u8, 33u8, 54u8, 66u8, - 13u8, 244u8, 246u8, 228u8, 177u8, 176u8, 251u8, 82u8, 12u8, 170u8, - 29u8, 39u8, 158u8, 16u8, 23u8, 253u8, 169u8, 117u8, 12u8, 0u8, 65u8, + 237u8, 214u8, 4u8, 255u8, 105u8, 58u8, 207u8, 5u8, 161u8, 200u8, 229u8, + 237u8, 83u8, 29u8, 131u8, 64u8, 244u8, 255u8, 15u8, 4u8, 224u8, 242u8, + 16u8, 182u8, 134u8, 20u8, 111u8, 114u8, 242u8, 218u8, 138u8, 144u8, ], ) } @@ -978,10 +1351,9 @@ pub mod api { "candidate_pending_availability", types::CandidatePendingAvailability { para_id }, [ - 139u8, 185u8, 205u8, 255u8, 131u8, 180u8, 248u8, 168u8, 25u8, 124u8, - 105u8, 141u8, 59u8, 118u8, 109u8, 136u8, 103u8, 200u8, 5u8, 218u8, - 72u8, 55u8, 114u8, 89u8, 207u8, 140u8, 51u8, 86u8, 167u8, 41u8, 221u8, - 86u8, + 244u8, 247u8, 40u8, 151u8, 56u8, 125u8, 160u8, 14u8, 133u8, 36u8, 95u8, + 142u8, 195u8, 41u8, 58u8, 243u8, 51u8, 140u8, 131u8, 63u8, 3u8, 143u8, + 104u8, 164u8, 193u8, 39u8, 220u8, 141u8, 141u8, 17u8, 182u8, 168u8, ], ) } @@ -997,10 +1369,9 @@ pub mod api { "candidate_events", types::CandidateEvents {}, [ - 101u8, 145u8, 200u8, 182u8, 213u8, 111u8, 180u8, 73u8, 14u8, 107u8, - 110u8, 145u8, 122u8, 35u8, 223u8, 219u8, 66u8, 101u8, 130u8, 255u8, - 44u8, 46u8, 50u8, 61u8, 104u8, 237u8, 34u8, 16u8, 179u8, 214u8, 115u8, - 7u8, + 75u8, 75u8, 47u8, 107u8, 25u8, 45u8, 177u8, 137u8, 39u8, 157u8, 170u8, + 247u8, 55u8, 83u8, 48u8, 240u8, 120u8, 227u8, 107u8, 42u8, 84u8, 78u8, + 79u8, 170u8, 249u8, 233u8, 249u8, 121u8, 105u8, 119u8, 7u8, 248u8, ], ) } @@ -1075,9 +1446,9 @@ 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, + 92u8, 45u8, 100u8, 230u8, 156u8, 157u8, 244u8, 49u8, 130u8, 181u8, + 20u8, 225u8, 159u8, 38u8, 33u8, 32u8, 147u8, 149u8, 41u8, 20u8, 158u8, + 61u8, 134u8, 225u8, 140u8, 5u8, 160u8, 223u8, 8u8, 11u8, 244u8, 236u8, ], ) } @@ -1096,10 +1467,9 @@ pub mod api { "session_info", types::SessionInfo { index }, [ - 77u8, 115u8, 39u8, 190u8, 116u8, 250u8, 66u8, 128u8, 168u8, 24u8, - 120u8, 153u8, 111u8, 125u8, 249u8, 115u8, 112u8, 169u8, 208u8, 31u8, - 95u8, 234u8, 14u8, 242u8, 14u8, 190u8, 120u8, 171u8, 202u8, 67u8, 81u8, - 237u8, + 109u8, 63u8, 65u8, 75u8, 87u8, 156u8, 145u8, 106u8, 214u8, 111u8, 24u8, + 111u8, 229u8, 171u8, 147u8, 148u8, 51u8, 80u8, 156u8, 94u8, 49u8, + 229u8, 151u8, 155u8, 255u8, 0u8, 72u8, 104u8, 42u8, 124u8, 222u8, 90u8, ], ) } @@ -1119,10 +1489,9 @@ pub mod api { "submit_pvf_check_statement", types::SubmitPvfCheckStatement { stmt, signature }, [ - 91u8, 138u8, 75u8, 79u8, 171u8, 224u8, 206u8, 152u8, 202u8, 131u8, - 251u8, 200u8, 75u8, 99u8, 49u8, 192u8, 175u8, 212u8, 139u8, 236u8, - 188u8, 243u8, 82u8, 62u8, 190u8, 79u8, 113u8, 23u8, 222u8, 29u8, 255u8, - 196u8, + 10u8, 97u8, 0u8, 72u8, 221u8, 159u8, 123u8, 113u8, 166u8, 212u8, 213u8, + 173u8, 250u8, 217u8, 54u8, 27u8, 120u8, 76u8, 219u8, 71u8, 28u8, 213u8, + 243u8, 103u8, 44u8, 198u8, 102u8, 43u8, 15u8, 81u8, 228u8, 110u8, ], ) } @@ -1203,9 +1572,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, ], ) } @@ -1222,9 +1591,9 @@ pub mod api { "unapplied_slashes", types::UnappliedSlashes {}, [ - 205u8, 16u8, 246u8, 48u8, 72u8, 160u8, 7u8, 136u8, 225u8, 2u8, 209u8, - 254u8, 255u8, 115u8, 49u8, 214u8, 131u8, 22u8, 210u8, 9u8, 111u8, - 170u8, 109u8, 247u8, 110u8, 42u8, 55u8, 68u8, 85u8, 37u8, 250u8, 4u8, + 37u8, 39u8, 110u8, 177u8, 177u8, 107u8, 186u8, 189u8, 36u8, 252u8, + 88u8, 92u8, 92u8, 3u8, 118u8, 28u8, 72u8, 180u8, 56u8, 113u8, 168u8, + 228u8, 180u8, 53u8, 56u8, 77u8, 129u8, 94u8, 68u8, 18u8, 199u8, 163u8, ], ) } @@ -1242,9 +1611,9 @@ pub mod api { "key_ownership_proof", types::KeyOwnershipProof { validator_id }, [ - 194u8, 237u8, 59u8, 4u8, 194u8, 235u8, 38u8, 58u8, 58u8, 221u8, 189u8, - 69u8, 254u8, 2u8, 242u8, 200u8, 86u8, 4u8, 138u8, 184u8, 198u8, 58u8, - 200u8, 34u8, 243u8, 91u8, 122u8, 35u8, 18u8, 83u8, 152u8, 191u8, + 75u8, 218u8, 234u8, 239u8, 79u8, 135u8, 77u8, 217u8, 172u8, 222u8, + 123u8, 195u8, 0u8, 79u8, 68u8, 22u8, 143u8, 185u8, 45u8, 209u8, 235u8, + 205u8, 61u8, 159u8, 205u8, 15u8, 169u8, 73u8, 84u8, 12u8, 240u8, 155u8, ], ) } @@ -1267,9 +1636,9 @@ pub mod api { key_ownership_proof, }, [ - 98u8, 63u8, 249u8, 13u8, 163u8, 161u8, 43u8, 96u8, 75u8, 65u8, 3u8, - 116u8, 8u8, 149u8, 122u8, 190u8, 179u8, 108u8, 17u8, 22u8, 59u8, 134u8, - 43u8, 31u8, 13u8, 254u8, 21u8, 112u8, 129u8, 16u8, 5u8, 180u8, + 107u8, 224u8, 213u8, 121u8, 155u8, 13u8, 89u8, 111u8, 110u8, 3u8, + 143u8, 126u8, 104u8, 78u8, 27u8, 220u8, 212u8, 51u8, 70u8, 241u8, 98u8, + 135u8, 61u8, 253u8, 19u8, 250u8, 54u8, 46u8, 195u8, 234u8, 92u8, 105u8, ], ) } @@ -1306,9 +1675,10 @@ pub mod api { "para_backing_state", types::ParaBackingState { _0 }, [ - 26u8, 210u8, 45u8, 233u8, 133u8, 180u8, 12u8, 156u8, 59u8, 249u8, 10u8, - 38u8, 32u8, 28u8, 25u8, 30u8, 83u8, 33u8, 142u8, 21u8, 12u8, 151u8, - 182u8, 128u8, 131u8, 192u8, 240u8, 73u8, 119u8, 64u8, 254u8, 139u8, + 207u8, 6u8, 220u8, 174u8, 230u8, 61u8, 153u8, 23u8, 219u8, 185u8, + 118u8, 139u8, 184u8, 122u8, 192u8, 47u8, 166u8, 165u8, 171u8, 69u8, + 119u8, 198u8, 51u8, 56u8, 141u8, 191u8, 148u8, 32u8, 104u8, 183u8, 7u8, + 51u8, ], ) } @@ -1350,6 +1720,82 @@ 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::ext::subxt_core::runtime_api::payload::StaticPayload< + types::NodeFeatures, + types::node_features::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::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::ext::subxt_core::runtime_api::payload::StaticPayload< + types::ApprovalVotingParams, + types::approval_voting_params::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::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, + ], + ) + } + #[doc = " Claim queue"] + pub fn claim_queue( + &self, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::ClaimQueue, + types::claim_queue::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "ParachainHost", + "claim_queue", + types::ClaimQueue {}, + [ + 43u8, 105u8, 112u8, 222u8, 33u8, 252u8, 194u8, 53u8, 104u8, 185u8, + 210u8, 179u8, 95u8, 149u8, 44u8, 86u8, 70u8, 202u8, 154u8, 196u8, + 186u8, 165u8, 103u8, 172u8, 66u8, 4u8, 135u8, 9u8, 255u8, 137u8, 52u8, + 125u8, + ], + ) + } + #[doc = " Elastic scaling support"] + pub fn candidates_pending_availability( + &self, + para_id: types::candidates_pending_availability::ParaId, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::CandidatesPendingAvailability, + types::candidates_pending_availability::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "ParachainHost", + "candidates_pending_availability", + types::CandidatesPendingAvailability { para_id }, + [ + 214u8, 41u8, 247u8, 245u8, 26u8, 171u8, 246u8, 174u8, 66u8, 162u8, 3u8, + 18u8, 234u8, 184u8, 2u8, 12u8, 137u8, 186u8, 106u8, 64u8, 125u8, 64u8, + 199u8, 201u8, 19u8, 82u8, 177u8, 198u8, 134u8, 238u8, 115u8, 51u8, + ], + ) + } } pub mod types { use super::runtime_types; @@ -1358,7 +1804,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, >; } } @@ -1384,10 +1830,10 @@ pub mod api { pub type Output = ( ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >, >, - runtime_types::polkadot_primitives::v6::GroupRotationInfo< + runtime_types::polkadot_primitives::v7::GroupRotationInfo< ::core::primitive::u32, >, ); @@ -1413,7 +1859,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::CoreState< + runtime_types::polkadot_primitives::v7::CoreState< ::subxt::ext::subxt_core::utils::H256, ::core::primitive::u32, >, @@ -1439,11 +1885,11 @@ pub mod api { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; pub type Assumption = - runtime_types::polkadot_primitives::v6::OccupiedCoreAssumption; + runtime_types::polkadot_primitives::v7::OccupiedCoreAssumption; pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::PersistedValidationData< + runtime_types::polkadot_primitives::v7::PersistedValidationData< ::subxt::ext::subxt_core::utils::H256, ::core::primitive::u32, >, @@ -1475,7 +1921,7 @@ pub mod api { ::subxt::ext::subxt_core::utils::H256; pub mod output { use super::runtime_types; - pub type Output = :: core :: option :: Option < (runtime_types :: polkadot_primitives :: v6 :: PersistedValidationData < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > ; + pub type Output = :: core :: option :: Option < (runtime_types :: polkadot_primitives :: v7 :: PersistedValidationData < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > ; } } #[derive( @@ -1500,7 +1946,7 @@ pub mod api { pub mod check_validation_outputs { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; - pub type Outputs = runtime_types::polkadot_primitives::v6::CandidateCommitments< + pub type Outputs = runtime_types::polkadot_primitives::v7::CandidateCommitments< ::core::primitive::u32, >; pub mod output { @@ -1552,7 +1998,7 @@ pub mod api { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; pub type Assumption = - runtime_types::polkadot_primitives::v6::OccupiedCoreAssumption; + runtime_types::polkadot_primitives::v7::OccupiedCoreAssumption; pub mod output { use super::runtime_types; pub type Output = :: core :: option :: Option < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode > ; @@ -1582,7 +2028,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::CommittedCandidateReceipt< + runtime_types::polkadot_primitives::v7::CommittedCandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >, >; @@ -1610,7 +2056,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::CandidateEvent< + runtime_types::polkadot_primitives::v7::CandidateEvent< ::subxt::ext::subxt_core::utils::H256, >, >; @@ -1724,7 +2170,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::ScrapedOnChainVotes< + runtime_types::polkadot_primitives::v7::ScrapedOnChainVotes< ::subxt::ext::subxt_core::utils::H256, >, >; @@ -1751,7 +2197,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::SessionInfo, + runtime_types::polkadot_primitives::v7::SessionInfo, >; } } @@ -1774,9 +2220,9 @@ pub mod api { } pub mod submit_pvf_check_statement { use super::runtime_types; - pub type Stmt = runtime_types::polkadot_primitives::v6::PvfCheckStatement; + pub type Stmt = runtime_types::polkadot_primitives::v7::PvfCheckStatement; pub type Signature = - runtime_types::polkadot_primitives::v6::validator_app::Signature; + runtime_types::polkadot_primitives::v7::validator_app::Signature; pub mod output { use super::runtime_types; pub type Output = (); @@ -1826,7 +2272,7 @@ pub mod api { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; pub type Assumption = - runtime_types::polkadot_primitives::v6::OccupiedCoreAssumption; + runtime_types::polkadot_primitives::v7::OccupiedCoreAssumption; pub mod output { use super::runtime_types; pub type Output = :: core :: option :: Option < runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash > ; @@ -1857,7 +2303,7 @@ pub mod api { pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<( ::core::primitive::u32, runtime_types::polkadot_core_primitives::CandidateHash, - runtime_types::polkadot_primitives::v6::DisputeState< + runtime_types::polkadot_primitives::v7::DisputeState< ::core::primitive::u32, >, )>; @@ -1884,7 +2330,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams, + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParams, >; } } @@ -1912,7 +2358,7 @@ pub mod api { pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec<( ::core::primitive::u32, runtime_types::polkadot_core_primitives::CandidateHash, - runtime_types::polkadot_primitives::v6::slashing::PendingSlashes, + runtime_types::polkadot_primitives::v7::slashing::PendingSlashes, )>; } } @@ -1934,10 +2380,10 @@ pub mod api { pub mod key_ownership_proof { use super::runtime_types; pub type ValidatorId = - runtime_types::polkadot_primitives::v6::validator_app::Public; + runtime_types::polkadot_primitives::v7::validator_app::Public; pub mod output { use super::runtime_types; - pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: v6 :: slashing :: OpaqueKeyOwnershipProof > ; + pub type Output = :: core :: option :: Option < runtime_types :: polkadot_primitives :: v7 :: slashing :: OpaqueKeyOwnershipProof > ; } } #[derive( @@ -1960,9 +2406,9 @@ pub mod api { pub mod submit_report_dispute_lost { use super::runtime_types; pub type DisputeProof = - runtime_types::polkadot_primitives::v6::slashing::DisputeProof; + runtime_types::polkadot_primitives::v7::slashing::DisputeProof; pub type KeyOwnershipProof = - runtime_types::polkadot_primitives::v6::slashing::OpaqueKeyOwnershipProof; + runtime_types::polkadot_primitives::v7::slashing::OpaqueKeyOwnershipProof; pub mod output { use super::runtime_types; pub type Output = ::core::option::Option<()>; @@ -2014,7 +2460,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::option::Option< - runtime_types::polkadot_primitives::v6::async_backing::BackingState< + runtime_types::polkadot_primitives::v7::async_backing::BackingState< ::subxt::ext::subxt_core::utils::H256, ::core::primitive::u32, >, @@ -2042,7 +2488,7 @@ pub mod api { use super::runtime_types; pub mod output { use super::runtime_types; - pub type Output = runtime_types :: polkadot_primitives :: v6 :: async_backing :: AsyncBackingParams ; + pub type Output = runtime_types :: polkadot_primitives :: v7 :: async_backing :: AsyncBackingParams ; } } #[derive( @@ -2065,7 +2511,7 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >; } } @@ -2084,6 +2530,110 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::bits::DecodedBits< + ::core::primitive::u8, + ::subxt::ext::subxt_core::utils::bits::Lsb0, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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::v7::ApprovalVotingParams; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ApprovalVotingParams {} + pub mod claim_queue { + use super::runtime_types; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::ext::subxt_core::utils::KeyedVec< + runtime_types::polkadot_primitives::v7::CoreIndex, + ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::polkadot_parachain_primitives::primitives::Id, + >, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ClaimQueue {} + pub mod candidates_pending_availability { + use super::runtime_types; + pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::polkadot_primitives::v7::CommittedCandidateReceipt< + ::subxt::ext::subxt_core::utils::H256, + >, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct CandidatesPendingAvailability { + pub para_id: candidates_pending_availability::ParaId, + } } } pub mod beefy_api { @@ -2123,9 +2673,10 @@ pub mod api { "validator_set", types::ValidatorSet {}, [ - 26u8, 174u8, 151u8, 215u8, 199u8, 11u8, 123u8, 18u8, 209u8, 187u8, - 70u8, 245u8, 59u8, 23u8, 11u8, 26u8, 167u8, 202u8, 83u8, 213u8, 99u8, - 74u8, 143u8, 140u8, 34u8, 9u8, 225u8, 217u8, 244u8, 169u8, 30u8, 217u8, + 89u8, 55u8, 143u8, 190u8, 77u8, 133u8, 228u8, 92u8, 245u8, 253u8, 70u8, + 232u8, 213u8, 119u8, 88u8, 47u8, 122u8, 60u8, 179u8, 61u8, 199u8, + 251u8, 45u8, 230u8, 76u8, 202u8, 49u8, 178u8, 204u8, 143u8, 196u8, + 135u8, ], ) } @@ -2153,10 +2704,10 @@ pub mod api { key_owner_proof, }, [ - 20u8, 162u8, 43u8, 173u8, 248u8, 140u8, 57u8, 151u8, 189u8, 96u8, 68u8, - 130u8, 14u8, 162u8, 230u8, 61u8, 169u8, 189u8, 239u8, 71u8, 121u8, - 137u8, 141u8, 206u8, 91u8, 164u8, 175u8, 93u8, 33u8, 161u8, 166u8, - 192u8, + 170u8, 93u8, 106u8, 193u8, 102u8, 51u8, 222u8, 58u8, 165u8, 172u8, + 245u8, 128u8, 116u8, 25u8, 252u8, 107u8, 60u8, 93u8, 218u8, 91u8, + 132u8, 18u8, 214u8, 7u8, 135u8, 13u8, 248u8, 250u8, 7u8, 255u8, 169u8, + 231u8, ], ) } @@ -2187,9 +2738,9 @@ pub mod api { authority_id, }, [ - 244u8, 175u8, 3u8, 235u8, 173u8, 34u8, 210u8, 81u8, 41u8, 5u8, 85u8, - 179u8, 53u8, 153u8, 16u8, 62u8, 103u8, 71u8, 180u8, 11u8, 165u8, 90u8, - 186u8, 156u8, 118u8, 114u8, 22u8, 108u8, 149u8, 9u8, 232u8, 174u8, + 119u8, 183u8, 178u8, 109u8, 57u8, 250u8, 176u8, 255u8, 11u8, 190u8, + 35u8, 142u8, 102u8, 112u8, 4u8, 219u8, 204u8, 81u8, 163u8, 87u8, 129u8, + 134u8, 34u8, 227u8, 213u8, 163u8, 50u8, 90u8, 54u8, 61u8, 84u8, 215u8, ], ) } @@ -2247,7 +2798,7 @@ pub mod api { pub mod submit_report_equivocation_unsigned_extrinsic { use super::runtime_types; pub type EquivocationProof = - runtime_types::sp_consensus_beefy::EquivocationProof< + runtime_types::sp_consensus_beefy::DoubleVotingProof< ::core::primitive::u32, runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, @@ -2624,10 +3175,9 @@ pub mod api { "grandpa_authorities", types::GrandpaAuthorities {}, [ - 166u8, 76u8, 160u8, 101u8, 242u8, 145u8, 213u8, 10u8, 16u8, 130u8, - 230u8, 196u8, 125u8, 152u8, 92u8, 143u8, 119u8, 223u8, 140u8, 189u8, - 203u8, 95u8, 52u8, 105u8, 147u8, 107u8, 135u8, 228u8, 62u8, 178u8, - 128u8, 33u8, + 8u8, 1u8, 99u8, 227u8, 52u8, 95u8, 230u8, 139u8, 198u8, 90u8, 159u8, + 146u8, 193u8, 81u8, 37u8, 27u8, 216u8, 227u8, 108u8, 126u8, 12u8, 94u8, + 125u8, 183u8, 143u8, 231u8, 87u8, 101u8, 114u8, 190u8, 193u8, 180u8, ], ) } @@ -2655,10 +3205,9 @@ pub mod api { key_owner_proof, }, [ - 112u8, 94u8, 150u8, 250u8, 132u8, 127u8, 185u8, 24u8, 113u8, 62u8, - 28u8, 171u8, 83u8, 9u8, 41u8, 228u8, 92u8, 137u8, 29u8, 190u8, 214u8, - 232u8, 100u8, 66u8, 100u8, 168u8, 149u8, 122u8, 93u8, 17u8, 236u8, - 104u8, + 27u8, 32u8, 16u8, 79u8, 172u8, 124u8, 44u8, 13u8, 176u8, 89u8, 69u8, + 60u8, 45u8, 176u8, 72u8, 151u8, 252u8, 5u8, 243u8, 82u8, 170u8, 51u8, + 179u8, 197u8, 117u8, 177u8, 110u8, 111u8, 97u8, 15u8, 109u8, 169u8, ], ) } @@ -2689,10 +3238,9 @@ pub mod api { authority_id, }, [ - 40u8, 126u8, 113u8, 27u8, 245u8, 45u8, 123u8, 138u8, 12u8, 3u8, 125u8, - 186u8, 151u8, 53u8, 186u8, 93u8, 13u8, 150u8, 163u8, 176u8, 206u8, - 89u8, 244u8, 127u8, 182u8, 85u8, 203u8, 41u8, 101u8, 183u8, 209u8, - 179u8, + 13u8, 144u8, 66u8, 235u8, 24u8, 190u8, 39u8, 75u8, 29u8, 157u8, 215u8, + 181u8, 173u8, 145u8, 224u8, 244u8, 189u8, 79u8, 6u8, 116u8, 139u8, + 196u8, 54u8, 16u8, 89u8, 190u8, 121u8, 43u8, 137u8, 150u8, 117u8, 68u8, ], ) } @@ -2848,9 +3396,9 @@ pub mod api { "configuration", types::Configuration {}, [ - 8u8, 81u8, 234u8, 29u8, 30u8, 198u8, 76u8, 19u8, 188u8, 198u8, 127u8, - 33u8, 141u8, 95u8, 132u8, 106u8, 31u8, 41u8, 215u8, 54u8, 240u8, 65u8, - 59u8, 160u8, 188u8, 237u8, 10u8, 143u8, 250u8, 79u8, 45u8, 161u8, + 50u8, 198u8, 27u8, 26u8, 92u8, 199u8, 8u8, 181u8, 12u8, 199u8, 116u8, + 247u8, 95u8, 70u8, 241u8, 24u8, 14u8, 250u8, 179u8, 77u8, 251u8, 55u8, + 133u8, 8u8, 142u8, 107u8, 6u8, 214u8, 228u8, 38u8, 134u8, 153u8, ], ) } @@ -2885,9 +3433,10 @@ pub mod api { "current_epoch", types::CurrentEpoch {}, [ - 73u8, 171u8, 149u8, 138u8, 230u8, 95u8, 241u8, 189u8, 207u8, 145u8, - 103u8, 76u8, 79u8, 44u8, 250u8, 68u8, 238u8, 4u8, 149u8, 234u8, 165u8, - 91u8, 89u8, 228u8, 132u8, 201u8, 203u8, 98u8, 209u8, 137u8, 8u8, 63u8, + 70u8, 68u8, 222u8, 110u8, 96u8, 143u8, 126u8, 136u8, 182u8, 163u8, + 104u8, 122u8, 21u8, 156u8, 6u8, 26u8, 86u8, 145u8, 153u8, 133u8, 251u8, + 137u8, 238u8, 218u8, 132u8, 218u8, 222u8, 140u8, 190u8, 232u8, 197u8, + 86u8, ], ) } @@ -2904,10 +3453,10 @@ pub mod api { "next_epoch", types::NextEpoch {}, [ - 191u8, 124u8, 183u8, 209u8, 73u8, 171u8, 164u8, 244u8, 68u8, 239u8, - 196u8, 54u8, 188u8, 85u8, 229u8, 175u8, 29u8, 89u8, 148u8, 108u8, - 208u8, 156u8, 62u8, 193u8, 167u8, 184u8, 251u8, 245u8, 123u8, 87u8, - 19u8, 225u8, + 141u8, 86u8, 122u8, 185u8, 215u8, 255u8, 142u8, 131u8, 8u8, 178u8, + 143u8, 200u8, 148u8, 84u8, 174u8, 215u8, 91u8, 251u8, 243u8, 155u8, + 92u8, 13u8, 44u8, 53u8, 128u8, 26u8, 165u8, 172u8, 49u8, 33u8, 130u8, + 148u8, ], ) } @@ -2935,10 +3484,9 @@ pub mod api { "generate_key_ownership_proof", types::GenerateKeyOwnershipProof { slot, authority_id }, [ - 235u8, 220u8, 75u8, 20u8, 175u8, 246u8, 127u8, 176u8, 225u8, 25u8, - 240u8, 252u8, 58u8, 254u8, 153u8, 133u8, 197u8, 168u8, 19u8, 231u8, - 234u8, 173u8, 58u8, 152u8, 212u8, 123u8, 13u8, 131u8, 84u8, 221u8, - 98u8, 46u8, + 13u8, 228u8, 75u8, 150u8, 203u8, 132u8, 82u8, 188u8, 17u8, 70u8, 169u8, + 19u8, 102u8, 96u8, 217u8, 209u8, 215u8, 196u8, 78u8, 141u8, 12u8, 14u8, + 151u8, 65u8, 173u8, 2u8, 100u8, 150u8, 18u8, 99u8, 19u8, 196u8, ], ) } @@ -2966,9 +3514,9 @@ pub mod api { key_owner_proof, }, [ - 9u8, 163u8, 149u8, 31u8, 89u8, 32u8, 224u8, 116u8, 102u8, 46u8, 10u8, - 189u8, 35u8, 166u8, 111u8, 156u8, 204u8, 80u8, 35u8, 64u8, 223u8, 3u8, - 4u8, 0u8, 97u8, 118u8, 124u8, 142u8, 224u8, 160u8, 2u8, 50u8, + 99u8, 80u8, 38u8, 173u8, 235u8, 48u8, 229u8, 88u8, 250u8, 165u8, 57u8, + 245u8, 85u8, 156u8, 114u8, 190u8, 144u8, 78u8, 37u8, 22u8, 36u8, 36u8, + 53u8, 174u8, 118u8, 222u8, 16u8, 159u8, 201u8, 254u8, 233u8, 82u8, ], ) } @@ -3151,9 +3699,9 @@ pub mod api { "authorities", types::Authorities {}, [ - 231u8, 109u8, 175u8, 33u8, 103u8, 6u8, 157u8, 241u8, 62u8, 92u8, 246u8, - 9u8, 109u8, 137u8, 233u8, 96u8, 103u8, 59u8, 201u8, 132u8, 102u8, 32u8, - 19u8, 183u8, 106u8, 146u8, 41u8, 172u8, 147u8, 55u8, 156u8, 77u8, + 165u8, 81u8, 77u8, 215u8, 27u8, 128u8, 36u8, 135u8, 216u8, 203u8, 60u8, + 250u8, 235u8, 22u8, 149u8, 99u8, 233u8, 114u8, 62u8, 69u8, 27u8, 185u8, + 45u8, 164u8, 136u8, 168u8, 108u8, 168u8, 24u8, 3u8, 66u8, 155u8, ], ) } @@ -3655,83 +4203,95 @@ pub mod api { pub mod genesis_builder { use super::root_mod; use super::runtime_types; - #[doc = " API to interact with GenesisConfig for the runtime"] + #[doc = " API to interact with RuntimeGenesisConfig for the runtime"] pub struct GenesisBuilder; impl GenesisBuilder { - #[doc = " Creates the default `GenesisConfig` and returns it as a JSON blob."] + #[doc = " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the"] + #[doc = " storage."] #[doc = ""] - #[doc = " This function instantiates the default `GenesisConfig` struct for the runtime and serializes it into a JSON"] - #[doc = " blob. It returns a `Vec` containing the JSON representation of the default `GenesisConfig`."] - pub fn create_default_config( + #[doc = " In the case of a FRAME-based runtime, this function deserializes the full `RuntimeGenesisConfig` from the given JSON blob and"] + #[doc = " puts it into the storage. If the provided JSON blob is incorrect or incomplete or the"] + #[doc = " deserialization fails, an error is returned."] + #[doc = ""] + #[doc = " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no"] + #[doc = " defaults will be used."] + pub fn build_state( &self, + json: types::build_state::Json, ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< - types::CreateDefaultConfig, - types::create_default_config::output::Output, + types::BuildState, + types::build_state::output::Output, > { ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( "GenesisBuilder", - "create_default_config", - types::CreateDefaultConfig {}, + "build_state", + types::BuildState { json }, [ - 238u8, 5u8, 139u8, 81u8, 184u8, 155u8, 221u8, 118u8, 190u8, 76u8, - 229u8, 67u8, 132u8, 89u8, 83u8, 80u8, 56u8, 171u8, 169u8, 64u8, 123u8, - 20u8, 129u8, 159u8, 28u8, 135u8, 84u8, 52u8, 192u8, 98u8, 104u8, 214u8, + 203u8, 233u8, 104u8, 116u8, 111u8, 131u8, 201u8, 235u8, 117u8, 116u8, + 140u8, 185u8, 93u8, 25u8, 155u8, 210u8, 56u8, 49u8, 23u8, 32u8, 253u8, + 92u8, 149u8, 241u8, 85u8, 245u8, 137u8, 45u8, 209u8, 189u8, 81u8, 2u8, ], ) } - #[doc = " Build `GenesisConfig` from a JSON blob not using any defaults and store it in the storage."] + #[doc = " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by"] + #[doc = " `id`."] #[doc = ""] - #[doc = " This function deserializes the full `GenesisConfig` from the given JSON blob and puts it into the storage."] - #[doc = " If the provided JSON blob is incorrect or incomplete or the deserialization fails, an error is returned."] - #[doc = " It is recommended to log any errors encountered during the process."] + #[doc = " If `id` is `None` the function returns JSON blob representation of the default"] + #[doc = " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default"] + #[doc = " `RuntimeGenesisConfig`."] #[doc = ""] - #[doc = " Please note that provided json blob must contain all `GenesisConfig` fields, no defaults will be used."] - pub fn build_config( + #[doc = " Otherwise function returns a JSON representation of the built-in, named"] + #[doc = " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not"] + #[doc = " exists. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of"] + #[doc = " (potentially nested) key-value pairs that are intended for customizing the default"] + #[doc = " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation"] + #[doc = " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can"] + #[doc = " be used in `build_state` method."] + pub fn get_preset( &self, - json: types::build_config::Json, + id: types::get_preset::Id, ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< - types::BuildConfig, - types::build_config::output::Output, + types::GetPreset, + types::get_preset::output::Output, > { ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( "GenesisBuilder", - "build_config", - types::BuildConfig { json }, + "get_preset", + types::GetPreset { id }, [ - 6u8, 98u8, 68u8, 125u8, 157u8, 26u8, 107u8, 86u8, 213u8, 227u8, 26u8, - 229u8, 122u8, 161u8, 229u8, 114u8, 123u8, 192u8, 66u8, 231u8, 148u8, - 175u8, 5u8, 185u8, 248u8, 88u8, 40u8, 122u8, 230u8, 209u8, 170u8, - 254u8, + 43u8, 153u8, 23u8, 52u8, 113u8, 161u8, 227u8, 122u8, 169u8, 135u8, + 119u8, 8u8, 128u8, 33u8, 143u8, 235u8, 13u8, 173u8, 58u8, 121u8, 178u8, + 223u8, 66u8, 217u8, 22u8, 244u8, 168u8, 113u8, 202u8, 186u8, 241u8, + 124u8, + ], + ) + } + #[doc = " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets."] + #[doc = ""] + #[doc = " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If"] + #[doc = " no named presets are provided by the runtime the list is empty."] + pub fn preset_names( + &self, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::PresetNames, + types::preset_names::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "GenesisBuilder", + "preset_names", + types::PresetNames {}, + [ + 150u8, 117u8, 54u8, 129u8, 221u8, 130u8, 186u8, 71u8, 13u8, 140u8, + 77u8, 180u8, 141u8, 37u8, 22u8, 219u8, 149u8, 218u8, 186u8, 206u8, + 80u8, 42u8, 165u8, 41u8, 99u8, 184u8, 73u8, 37u8, 125u8, 188u8, 167u8, + 122u8, ], ) } } pub mod types { use super::runtime_types; - pub mod create_default_config { - use super::runtime_types; - pub mod output { - use super::runtime_types; - pub type Output = - ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; - } - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct CreateDefaultConfig {} - pub mod build_config { + pub mod build_state { use super::runtime_types; pub type Json = ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; @@ -3757,9 +4317,61 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct BuildConfig { - pub json: build_config::Json, + pub struct BuildState { + pub json: build_state::Json, } + pub mod get_preset { + use super::runtime_types; + pub type Id = + ::core::option::Option<::subxt::ext::subxt_core::alloc::string::String>; + pub mod output { + use super::runtime_types; + pub type Output = ::core::option::Option< + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct GetPreset { + pub id: get_preset::Id, + } + pub mod preset_names { + use super::runtime_types; + pub mod output { + use super::runtime_types; + pub type Output = ::subxt::ext::subxt_core::alloc::vec::Vec< + ::subxt::ext::subxt_core::alloc::string::String, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct PresetNames {} } } } @@ -3788,15 +4400,9 @@ pub mod api { pub fn transaction_payment(&self) -> transaction_payment::constants::ConstantsApi { transaction_payment::constants::ConstantsApi } - pub fn beefy(&self) -> beefy::constants::ConstantsApi { - beefy::constants::ConstantsApi - } 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 } @@ -3873,6 +4479,12 @@ 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 beefy(&self) -> beefy::constants::ConstantsApi { + beefy::constants::ConstantsApi + } pub fn assigned_slots(&self) -> assigned_slots::constants::ConstantsApi { assigned_slots::constants::ConstantsApi } @@ -3897,6 +4509,9 @@ pub mod api { pub fn balances(&self) -> balances::storage::StorageApi { balances::storage::StorageApi } + pub fn parameters(&self) -> parameters::storage::StorageApi { + parameters::storage::StorageApi + } pub fn transaction_payment(&self) -> transaction_payment::storage::StorageApi { transaction_payment::storage::StorageApi } @@ -3906,14 +4521,8 @@ pub mod api { pub fn offences(&self) -> offences::storage::StorageApi { offences::storage::StorageApi } - pub fn beefy(&self) -> beefy::storage::StorageApi { - beefy::storage::StorageApi - } - pub fn mmr(&self) -> mmr::storage::StorageApi { - mmr::storage::StorageApi - } - pub fn mmr_leaf(&self) -> mmr_leaf::storage::StorageApi { - mmr_leaf::storage::StorageApi + pub fn historical(&self) -> historical::storage::StorageApi { + historical::storage::StorageApi } pub fn session(&self) -> session::storage::StorageApi { session::storage::StorageApi @@ -3921,8 +4530,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 @@ -4023,14 +4632,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 } @@ -4046,6 +4657,15 @@ pub mod api { pub fn xcm_pallet(&self) -> xcm_pallet::storage::StorageApi { xcm_pallet::storage::StorageApi } + pub fn beefy(&self) -> beefy::storage::StorageApi { + beefy::storage::StorageApi + } + pub fn mmr(&self) -> mmr::storage::StorageApi { + mmr::storage::StorageApi + } + pub fn mmr_leaf(&self) -> mmr_leaf::storage::StorageApi { + mmr_leaf::storage::StorageApi + } pub fn assigned_slots(&self) -> assigned_slots::storage::StorageApi { assigned_slots::storage::StorageApi } @@ -4076,8 +4696,8 @@ pub mod api { pub fn balances(&self) -> balances::calls::TransactionApi { balances::calls::TransactionApi } - pub fn beefy(&self) -> beefy::calls::TransactionApi { - beefy::calls::TransactionApi + pub fn parameters(&self) -> parameters::calls::TransactionApi { + parameters::calls::TransactionApi } pub fn session(&self) -> session::calls::TransactionApi { session::calls::TransactionApi @@ -4085,9 +4705,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 } @@ -4198,9 +4815,18 @@ 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 beefy(&self) -> beefy::calls::TransactionApi { + beefy::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 } @@ -4213,6 +4839,9 @@ pub mod api { pub fn state_trie_migration(&self) -> state_trie_migration::calls::TransactionApi { state_trie_migration::calls::TransactionApi } + pub fn root_testing(&self) -> root_testing::calls::TransactionApi { + root_testing::calls::TransactionApi + } pub fn sudo(&self) -> sudo::calls::TransactionApi { sudo::calls::TransactionApi } @@ -4226,9 +4855,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 175u8, 118u8, 21u8, 61u8, 145u8, 16u8, 77u8, 206u8, 11u8, 26u8, 133u8, 39u8, 11u8, - 10u8, 45u8, 3u8, 37u8, 12u8, 170u8, 170u8, 252u8, 10u8, 141u8, 176u8, 190u8, 76u8, - 176u8, 211u8, 99u8, 9u8, 160u8, 78u8, + 70u8, 211u8, 173u8, 12u8, 184u8, 10u8, 108u8, 202u8, 14u8, 243u8, 236u8, 64u8, + 189u8, 194u8, 175u8, 206u8, 89u8, 19u8, 236u8, 197u8, 124u8, 189u8, 198u8, 124u8, + 203u8, 154u8, 6u8, 107u8, 195u8, 46u8, 97u8, 3u8, ] } pub mod system { @@ -4258,7 +4887,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remark`]."] + #[doc = "Make some on-chain remark."] + #[doc = ""] + #[doc = "Can be executed by every `origin`."] pub struct Remark { pub remark: remark::Remark, } @@ -4285,7 +4916,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_heap_pages`]."] + #[doc = "Set the number of pages in the WebAssembly environment's heap."] pub struct SetHeapPages { pub pages: set_heap_pages::Pages, } @@ -4311,7 +4942,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_code`]."] + #[doc = "Set the new runtime code."] pub struct SetCode { pub code: set_code::Code, } @@ -4338,7 +4969,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_code_without_checks`]."] + #[doc = "Set the new runtime code without doing any checks of the given `code`."] + #[doc = ""] + #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"] + #[doc = "version!"] pub struct SetCodeWithoutChecks { pub code: set_code_without_checks::Code, } @@ -4365,7 +4999,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_storage`]."] + #[doc = "Set some items of storage."] pub struct SetStorage { pub items: set_storage::Items, } @@ -4394,7 +5028,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill_storage`]."] + #[doc = "Kill some items from storage."] pub struct KillStorage { pub keys: kill_storage::Keys, } @@ -4422,7 +5056,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill_prefix`]."] + #[doc = "Kill all storage items with a key that starts with the given prefix."] + #[doc = ""] + #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"] + #[doc = "the prefix we are removing to accurately calculate the weight of this function."] pub struct KillPrefix { pub prefix: kill_prefix::Prefix, pub subkeys: kill_prefix::Subkeys, @@ -4451,7 +5088,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remark_with_event`]."] + #[doc = "Make some on-chain remark and emit event."] pub struct RemarkWithEvent { pub remark: remark_with_event::Remark, } @@ -4464,10 +5101,109 @@ pub mod api { const PALLET: &'static str = "System"; const CALL: &'static str = "remark_with_event"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "This call requires Root origin."] + pub struct AuthorizeUpgrade { + pub code_hash: authorize_upgrade::CodeHash, + } + pub mod authorize_upgrade { + use super::runtime_types; + pub type CodeHash = ::subxt::ext::subxt_core::utils::H256; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AuthorizeUpgrade { + const PALLET: &'static str = "System"; + const CALL: &'static str = "authorize_upgrade"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"] + #[doc = "example that the spec name remains the same and that the version number increases. Not"] + #[doc = "recommended for normal use. Use `authorize_upgrade` instead."] + #[doc = ""] + #[doc = "This call requires Root origin."] + 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::ext::subxt_core::utils::H256; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AuthorizeUpgradeWithoutChecks { + const PALLET: &'static str = "System"; + const CALL: &'static str = "authorize_upgrade_without_checks"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."] + #[doc = ""] + #[doc = "If the authorization required a version check, this call will ensure the spec name"] + #[doc = "remains unchanged and that the spec version has increased."] + #[doc = ""] + #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"] + #[doc = "the new `code` in the same block or attempt to schedule the upgrade."] + #[doc = ""] + #[doc = "All origins are allowed."] + pub struct ApplyAuthorizedUpgrade { + pub code: apply_authorized_upgrade::Code, + } + pub mod apply_authorized_upgrade { + use super::runtime_types; + pub type Code = + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApplyAuthorizedUpgrade { + const PALLET: &'static str = "System"; + const CALL: &'static str = "apply_authorized_upgrade"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::remark`]."] + #[doc = "Make some on-chain remark."] + #[doc = ""] + #[doc = "Can be executed by every `origin`."] pub fn remark( &self, remark: types::remark::Remark, @@ -4485,7 +5221,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_heap_pages`]."] + #[doc = "Set the number of pages in the WebAssembly environment's heap."] pub fn set_heap_pages( &self, pages: types::set_heap_pages::Pages, @@ -4503,7 +5239,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_code`]."] + #[doc = "Set the new runtime code."] pub fn set_code( &self, code: types::set_code::Code, @@ -4520,7 +5256,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_code_without_checks`]."] + #[doc = "Set the new runtime code without doing any checks of the given `code`."] + #[doc = ""] + #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"] + #[doc = "version!"] pub fn set_code_without_checks( &self, code: types::set_code_without_checks::Code, @@ -4538,7 +5277,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_storage`]."] + #[doc = "Set some items of storage."] pub fn set_storage( &self, items: types::set_storage::Items, @@ -4556,7 +5295,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill_storage`]."] + #[doc = "Kill some items from storage."] pub fn kill_storage( &self, keys: types::kill_storage::Keys, @@ -4574,7 +5313,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill_prefix`]."] + #[doc = "Kill all storage items with a key that starts with the given prefix."] + #[doc = ""] + #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"] + #[doc = "the prefix we are removing to accurately calculate the weight of this function."] pub fn kill_prefix( &self, prefix: types::kill_prefix::Prefix, @@ -4593,7 +5335,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remark_with_event`]."] + #[doc = "Make some on-chain remark and emit event."] pub fn remark_with_event( &self, remark: types::remark_with_event::Remark, @@ -4610,6 +5352,79 @@ pub mod api { ], ) } + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "This call requires Root origin."] + pub fn authorize_upgrade( + &self, + code_hash: types::authorize_upgrade::CodeHash, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"] + #[doc = "example that the spec name remains the same and that the version number increases. Not"] + #[doc = "recommended for normal use. Use `authorize_upgrade` instead."] + #[doc = ""] + #[doc = "This call requires Root origin."] + pub fn authorize_upgrade_without_checks( + &self, + code_hash: types::authorize_upgrade_without_checks::CodeHash, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::AuthorizeUpgradeWithoutChecks, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."] + #[doc = ""] + #[doc = "If the authorization required a version check, this call will ensure the spec name"] + #[doc = "remains unchanged and that the spec version has increased."] + #[doc = ""] + #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"] + #[doc = "the new `code` in the same block or attempt to schedule the upgrade."] + #[doc = ""] + #[doc = "All origins are allowed."] + pub fn apply_authorized_upgrade( + &self, + code: types::apply_authorized_upgrade::Code, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ApplyAuthorizedUpgrade, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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."] @@ -4746,6 +5561,30 @@ pub mod api { const PALLET: &'static str = "System"; const EVENT: &'static str = "Remarked"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::H256; + pub type CheckVersion = ::core::primitive::bool; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UpgradeAuthorized { + const PALLET: &'static str = "System"; + const EVENT: &'static str = "UpgradeAuthorized"; + } } pub mod storage { use super::runtime_types; @@ -4763,6 +5602,10 @@ pub mod api { use super::runtime_types; pub type ExtrinsicCount = ::core::primitive::u32; } + pub mod inherents_applied { + use super::runtime_types; + pub type InherentsApplied = ::core::primitive::bool; + } pub mod block_weight { use super::runtime_types; pub type BlockWeight = runtime_types::frame_support::dispatch::PerDispatchClass< @@ -4834,6 +5677,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 { @@ -4906,6 +5754,27 @@ pub mod api { ], ) } + #[doc = " Whether all inherents have been applied."] + pub fn inherents_applied( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::inherents_applied::InherentsApplied, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "System", + "InherentsApplied", + (), + [ + 132u8, 249u8, 142u8, 252u8, 8u8, 103u8, 80u8, 120u8, 50u8, 6u8, 188u8, + 223u8, 101u8, 55u8, 165u8, 189u8, 172u8, 249u8, 165u8, 230u8, 183u8, + 109u8, 34u8, 65u8, 185u8, 150u8, 29u8, 8u8, 186u8, 129u8, 135u8, 239u8, + ], + ) + } #[doc = " The current weight for the block."] pub fn block_weight( &self, @@ -5129,10 +5998,9 @@ pub mod api { "Events", (), [ - 52u8, 237u8, 85u8, 54u8, 238u8, 212u8, 107u8, 140u8, 46u8, 226u8, - 212u8, 254u8, 94u8, 185u8, 110u8, 10u8, 52u8, 19u8, 52u8, 76u8, 50u8, - 110u8, 156u8, 8u8, 175u8, 172u8, 137u8, 145u8, 2u8, 163u8, 167u8, - 186u8, + 84u8, 28u8, 250u8, 81u8, 40u8, 13u8, 135u8, 170u8, 3u8, 113u8, 248u8, + 222u8, 138u8, 9u8, 41u8, 241u8, 61u8, 18u8, 77u8, 116u8, 249u8, 90u8, + 236u8, 58u8, 59u8, 40u8, 199u8, 30u8, 216u8, 167u8, 198u8, 208u8, ], ) } @@ -5309,6 +6177,27 @@ pub mod api { ], ) } + #[doc = " `Some` if a code upgrade has been authorized."] + pub fn authorized_upgrade( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::authorized_upgrade::AuthorizedUpgrade, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "System", + "AuthorizedUpgrade", + (), + [ + 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 { @@ -5381,7 +6270,7 @@ pub mod api { ], ) } - #[doc = " Get the chain's current version."] + #[doc = " Get the chain's in-code version."] pub fn version( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -5448,7 +6337,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] pub struct ReportEquivocation { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_equivocation::EquivocationProof, @@ -5484,7 +6376,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] pub struct ReportEquivocationUnsigned { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_equivocation_unsigned::EquivocationProof, @@ -5520,7 +6419,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::plan_config_change`]."] + #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"] + #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."] + #[doc = "Multiple calls to this method will replace any existing planned config change that had"] + #[doc = "not been enacted yet."] pub struct PlanConfigChange { pub config: plan_config_change::Config, } @@ -5536,7 +6438,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] pub fn report_equivocation( &self, equivocation_proof: types::report_equivocation::EquivocationProof, @@ -5553,14 +6458,21 @@ pub mod api { key_owner_proof, }, [ - 37u8, 70u8, 151u8, 149u8, 231u8, 197u8, 226u8, 88u8, 38u8, 138u8, - 147u8, 164u8, 250u8, 117u8, 156u8, 178u8, 44u8, 20u8, 123u8, 33u8, - 11u8, 106u8, 56u8, 122u8, 90u8, 11u8, 15u8, 219u8, 245u8, 18u8, 171u8, - 90u8, + 97u8, 65u8, 136u8, 207u8, 137u8, 113u8, 206u8, 76u8, 166u8, 245u8, + 231u8, 162u8, 65u8, 47u8, 251u8, 149u8, 68u8, 179u8, 13u8, 123u8, + 209u8, 146u8, 83u8, 54u8, 14u8, 150u8, 62u8, 195u8, 27u8, 190u8, 76u8, + 224u8, ], ) } - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] pub fn report_equivocation_unsigned( &self, equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, @@ -5578,13 +6490,16 @@ pub mod api { key_owner_proof, }, [ - 179u8, 248u8, 80u8, 171u8, 220u8, 8u8, 75u8, 215u8, 121u8, 151u8, - 255u8, 4u8, 6u8, 54u8, 141u8, 244u8, 111u8, 156u8, 183u8, 19u8, 192u8, - 195u8, 79u8, 53u8, 0u8, 170u8, 120u8, 227u8, 186u8, 45u8, 48u8, 57u8, + 184u8, 158u8, 14u8, 168u8, 175u8, 23u8, 10u8, 63u8, 54u8, 15u8, 182u8, + 163u8, 5u8, 49u8, 223u8, 197u8, 45u8, 204u8, 216u8, 26u8, 126u8, 157u8, + 242u8, 233u8, 228u8, 203u8, 117u8, 216u8, 185u8, 157u8, 199u8, 117u8, ], ) } - #[doc = "See [`Pallet::plan_config_change`]."] + #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"] + #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."] + #[doc = "Multiple calls to this method will replace any existing planned config change that had"] + #[doc = "not been enacted yet."] pub fn plan_config_change( &self, config: types::plan_config_change::Config, @@ -5656,7 +6571,7 @@ pub mod api { pub mod under_construction { use super::runtime_types; pub type UnderConstruction = - runtime_types::bounded_collections::bounded_vec::BoundedVec6< + runtime_types::bounded_collections::bounded_vec::BoundedVec7< [::core::primitive::u8; 32usize], >; pub type Param0 = ::core::primitive::u32; @@ -5692,7 +6607,7 @@ pub mod api { pub mod skipped_epochs { use super::runtime_types; pub type SkippedEpochs = - runtime_types::bounded_collections::bounded_vec::BoundedVec7<( + runtime_types::bounded_collections::bounded_vec::BoundedVec8<( ::core::primitive::u64, ::core::primitive::u32, )>; @@ -5737,10 +6652,10 @@ pub mod api { "Authorities", (), [ - 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, + 192u8, 157u8, 98u8, 244u8, 104u8, 38u8, 195u8, 114u8, 183u8, 62u8, + 247u8, 18u8, 31u8, 152u8, 246u8, 206u8, 97u8, 13u8, 118u8, 211u8, + 104u8, 54u8, 150u8, 152u8, 126u8, 170u8, 228u8, 158u8, 108u8, 129u8, + 134u8, 44u8, ], ) } @@ -5877,10 +6792,9 @@ pub mod api { "NextAuthorities", (), [ - 116u8, 95u8, 126u8, 199u8, 237u8, 90u8, 202u8, 227u8, 247u8, 56u8, - 201u8, 113u8, 239u8, 191u8, 151u8, 56u8, 156u8, 133u8, 61u8, 64u8, - 141u8, 26u8, 8u8, 95u8, 177u8, 255u8, 54u8, 223u8, 132u8, 74u8, 210u8, - 128u8, + 29u8, 161u8, 79u8, 221u8, 198u8, 101u8, 11u8, 17u8, 20u8, 17u8, 225u8, + 144u8, 35u8, 150u8, 241u8, 190u8, 106u8, 32u8, 230u8, 14u8, 212u8, + 126u8, 1u8, 96u8, 73u8, 173u8, 245u8, 39u8, 153u8, 33u8, 205u8, 174u8, ], ) } @@ -5977,9 +6891,10 @@ pub mod api { "Initialized", (), [ - 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, ], ) } @@ -6242,7 +7157,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set`]."] + #[doc = "Set the current time."] + #[doc = ""] + #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"] + #[doc = "phase, if this call hasn't been invoked by that time."] + #[doc = ""] + #[doc = "The timestamp should be greater than the previous one by the amount specified by"] + #[doc = "[`Config::MinimumPeriod`]."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"] + #[doc = "that changing the complexity of this call could result exhausting the resources in a"] + #[doc = "block to execute any other calls."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"] + #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"] + #[doc = " `on_finalize`)"] + #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."] pub struct Set { #[codec(compact)] pub now: set::Now, @@ -6258,7 +7191,25 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::set`]."] + #[doc = "Set the current time."] + #[doc = ""] + #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"] + #[doc = "phase, if this call hasn't been invoked by that time."] + #[doc = ""] + #[doc = "The timestamp should be greater than the previous one by the amount specified by"] + #[doc = "[`Config::MinimumPeriod`]."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"] + #[doc = "that changing the complexity of this call could result exhausting the resources in a"] + #[doc = "block to execute any other calls."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"] + #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"] + #[doc = " `on_finalize`)"] + #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."] pub fn set( &self, now: types::set::Now, @@ -6396,7 +7347,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim`]."] + #[doc = "Assign an previously unassigned index."] + #[doc = ""] + #[doc = "Payment: `Deposit` is reserved from the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be claimed. This must not be in use."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Claim { pub index: claim::Index, } @@ -6422,7 +7384,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer`]."] + #[doc = "Assign an index already owned by the sender to another account. The balance reservation"] + #[doc = "is effectively transferred to the new account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Transfer { pub new: transfer::New, pub index: transfer::Index, @@ -6453,7 +7426,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::free`]."] + #[doc = "Free up an index owned by the sender."] + #[doc = ""] + #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."] + #[doc = ""] + #[doc = "- `index`: the index to be freed. This must be owned by the sender."] + #[doc = ""] + #[doc = "Emits `IndexFreed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Free { pub index: free::Index, } @@ -6479,7 +7463,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"] + #[doc = "held, then any deposit is reimbursed to its current owner."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `index`: the index to be (re-)assigned."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct ForceTransfer { pub new: force_transfer::New, pub index: force_transfer::Index, @@ -6512,7 +7508,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::freeze`]."] + #[doc = "Freeze an index so it will always point to the sender account. This consumes the"] + #[doc = "deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"] + #[doc = "non-frozen account `index`."] + #[doc = ""] + #[doc = "- `index`: the index to be frozen in place."] + #[doc = ""] + #[doc = "Emits `IndexFrozen` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Freeze { pub index: freeze::Index, } @@ -6527,7 +7534,18 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::claim`]."] + #[doc = "Assign an previously unassigned index."] + #[doc = ""] + #[doc = "Payment: `Deposit` is reserved from the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be claimed. This must not be in use."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn claim( &self, index: types::claim::Index, @@ -6544,7 +7562,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer`]."] + #[doc = "Assign an index already owned by the sender to another account. The balance reservation"] + #[doc = "is effectively transferred to the new account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn transfer( &self, new: types::transfer::New, @@ -6563,7 +7592,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::free`]."] + #[doc = "Free up an index owned by the sender."] + #[doc = ""] + #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."] + #[doc = ""] + #[doc = "- `index`: the index to be freed. This must be owned by the sender."] + #[doc = ""] + #[doc = "Emits `IndexFreed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn free( &self, index: types::free::Index, @@ -6581,7 +7621,19 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"] + #[doc = "held, then any deposit is reimbursed to its current owner."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `index`: the index to be (re-)assigned."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn force_transfer( &self, new: types::force_transfer::New, @@ -6601,7 +7653,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::freeze`]."] + #[doc = "Freeze an index so it will always point to the sender account. This consumes the"] + #[doc = "deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"] + #[doc = "non-frozen account `index`."] + #[doc = ""] + #[doc = "- `index`: the index to be frozen in place."] + #[doc = ""] + #[doc = "Emits `IndexFrozen` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn freeze( &self, index: types::freeze::Index, @@ -6813,7 +7876,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] pub struct TransferAllowDeath { pub dest: transfer_allow_death::Dest, #[codec(compact)] @@ -6845,7 +7914,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] pub struct ForceTransfer { pub source: force_transfer::Source, pub dest: force_transfer::Dest, @@ -6882,7 +7952,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] pub struct TransferKeepAlive { pub dest: transfer_keep_alive::Dest, #[codec(compact)] @@ -6914,7 +7989,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] pub struct TransferAll { pub dest: transfer_all::Dest, pub keep_alive: transfer_all::KeepAlive, @@ -6945,7 +8034,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] pub struct ForceUnreserve { pub who: force_unreserve::Who, pub amount: force_unreserve::Amount, @@ -6976,7 +8067,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] pub struct UpgradeAccounts { pub who: upgrade_accounts::Who, } @@ -7004,7 +8102,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] pub struct ForceSetBalance { pub who: force_set_balance::Who, #[codec(compact)] @@ -7022,10 +8122,84 @@ pub mod api { const PALLET: &'static str = "Balances"; const CALL: &'static str = "force_set_balance"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + pub struct ForceAdjustTotalIssuance { + pub direction: force_adjust_total_issuance::Direction, + #[codec(compact)] + pub delta: force_adjust_total_issuance::Delta, + } + pub mod force_adjust_total_issuance { + use super::runtime_types; + pub type Direction = runtime_types::pallet_balances::types::AdjustmentDirection; + pub type Delta = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceAdjustTotalIssuance { + const PALLET: &'static str = "Balances"; + const CALL: &'static str = "force_adjust_total_issuance"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Burn the specified liquid free balance from the origin account."] + #[doc = ""] + #[doc = "If the origin's account ends up below the existential deposit as a result"] + #[doc = "of the burn and `keep_alive` is false, the account will be reaped."] + #[doc = ""] + #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"] + #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."] + pub struct Burn { + #[codec(compact)] + pub value: burn::Value, + pub keep_alive: burn::KeepAlive, + } + pub mod burn { + use super::runtime_types; + pub type Value = ::core::primitive::u128; + pub type KeepAlive = ::core::primitive::bool; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Burn { + const PALLET: &'static str = "Balances"; + const CALL: &'static str = "burn"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] pub fn transfer_allow_death( &self, dest: types::transfer_allow_death::Dest, @@ -7044,7 +8218,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] pub fn force_transfer( &self, source: types::force_transfer::Source, @@ -7067,7 +8242,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] pub fn transfer_keep_alive( &self, dest: types::transfer_keep_alive::Dest, @@ -7085,7 +8265,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] pub fn transfer_all( &self, dest: types::transfer_all::Dest, @@ -7103,7 +8297,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] pub fn force_unreserve( &self, who: types::force_unreserve::Who, @@ -7122,7 +8318,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] pub fn upgrade_accounts( &self, who: types::upgrade_accounts::Who, @@ -7139,7 +8342,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] pub fn force_set_balance( &self, who: types::force_set_balance::Who, @@ -7157,6 +8362,54 @@ pub mod api { ], ) } + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + pub fn force_adjust_total_issuance( + &self, + direction: types::force_adjust_total_issuance::Direction, + delta: types::force_adjust_total_issuance::Delta, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ForceAdjustTotalIssuance, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Balances", + "force_adjust_total_issuance", + types::ForceAdjustTotalIssuance { direction, delta }, + [ + 208u8, 134u8, 56u8, 133u8, 232u8, 164u8, 10u8, 213u8, 53u8, 193u8, + 190u8, 63u8, 236u8, 186u8, 96u8, 122u8, 104u8, 87u8, 173u8, 38u8, 58u8, + 176u8, 21u8, 78u8, 42u8, 106u8, 46u8, 248u8, 251u8, 190u8, 150u8, + 202u8, + ], + ) + } + #[doc = "Burn the specified liquid free balance from the origin account."] + #[doc = ""] + #[doc = "If the origin's account ends up below the existential deposit as a result"] + #[doc = "of the burn and `keep_alive` is false, the account will be reaped."] + #[doc = ""] + #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"] + #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."] + pub fn burn( + &self, + value: types::burn::Value, + keep_alive: types::burn::KeepAlive, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Balances", + "burn", + types::Burn { value, keep_alive }, + [ + 176u8, 64u8, 7u8, 109u8, 16u8, 44u8, 145u8, 125u8, 147u8, 152u8, 130u8, + 114u8, 221u8, 201u8, 150u8, 162u8, 118u8, 71u8, 52u8, 92u8, 240u8, + 116u8, 203u8, 98u8, 5u8, 22u8, 43u8, 102u8, 94u8, 208u8, 101u8, 57u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -7670,6 +8923,30 @@ pub mod api { const PALLET: &'static str = "Balances"; const EVENT: &'static str = "Thawed"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The `TotalIssuance` was forcefully changed."] + pub struct TotalIssuanceForced { + pub old: total_issuance_forced::Old, + pub new: total_issuance_forced::New, + } + pub mod total_issuance_forced { + use super::runtime_types; + pub type Old = ::core::primitive::u128; + pub type New = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for TotalIssuanceForced { + const PALLET: &'static str = "Balances"; + const EVENT: &'static str = "TotalIssuanceForced"; + } } pub mod storage { use super::runtime_types; @@ -7702,7 +8979,7 @@ pub mod api { pub mod reserves { use super::runtime_types; pub type Reserves = - runtime_types::bounded_collections::bounded_vec::BoundedVec8< + runtime_types::bounded_collections::bounded_vec::BoundedVec9< runtime_types::pallet_balances::types::ReserveData< [::core::primitive::u8; 8usize], ::core::primitive::u128, @@ -7712,7 +8989,7 @@ pub mod api { } pub mod holds { use super::runtime_types; - pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec9< + pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec10< runtime_types::pallet_balances::types::IdAmount< runtime_types::rococo_runtime::RuntimeHoldReason, ::core::primitive::u128, @@ -7723,7 +9000,7 @@ pub mod api { pub mod freezes { use super::runtime_types; pub type Freezes = - runtime_types::bounded_collections::bounded_vec::BoundedVec10< + runtime_types::bounded_collections::bounded_vec::BoundedVec11< runtime_types::pallet_balances::types::IdAmount< (), ::core::primitive::u128, @@ -7872,6 +9149,8 @@ pub mod api { } #[doc = " Any liquidity locks on some account balances."] #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn locks_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -7894,6 +9173,8 @@ pub mod api { } #[doc = " Any liquidity locks on some account balances."] #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn locks( &self, _0: impl ::core::borrow::Borrow, @@ -7920,6 +9201,8 @@ pub mod api { ) } #[doc = " Named reserves on some account balances."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn reserves_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -7941,6 +9224,8 @@ pub mod api { ) } #[doc = " Named reserves on some account balances."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn reserves( &self, _0: impl ::core::borrow::Borrow, @@ -7981,10 +9266,10 @@ pub mod api { "Holds", (), [ - 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, ], ) } @@ -8008,10 +9293,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, ], ) } @@ -8093,6 +9378,8 @@ pub mod api { } #[doc = " The maximum number of locks that should exist on an account."] #[doc = " Not strictly enforced, but used for weight estimation."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn max_locks( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -8110,6 +9397,8 @@ pub mod api { ) } #[doc = " The maximum number of named reserves that can exist on an account."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn max_reserves( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -8126,23 +9415,6 @@ pub mod api { ], ) } - #[doc = " The maximum number of holds that can exist on an account at any time."] - pub fn max_holds( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Balances", - "MaxHolds", - [ - 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 number of individual freeze locks that can exist on an account at any time."] pub fn max_freezes( &self, @@ -8163,6 +9435,170 @@ pub mod api { } } } + pub mod parameters { + use super::root_mod; + use super::runtime_types; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::pallet_parameters::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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set the value of a parameter."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"] + #[doc = "deleted by setting them to `None`."] + pub struct SetParameter { + pub key_value: set_parameter::KeyValue, + } + pub mod set_parameter { + use super::runtime_types; + pub type KeyValue = runtime_types::rococo_runtime::RuntimeParameters; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetParameter { + const PALLET: &'static str = "Parameters"; + const CALL: &'static str = "set_parameter"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Set the value of a parameter."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"] + #[doc = "deleted by setting them to `None`."] + pub fn set_parameter( + &self, + key_value: types::set_parameter::KeyValue, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Parameters", + "set_parameter", + types::SetParameter { key_value }, + [ + 82u8, 119u8, 126u8, 179u8, 210u8, 236u8, 135u8, 48u8, 188u8, 108u8, + 183u8, 91u8, 202u8, 109u8, 117u8, 199u8, 73u8, 154u8, 5u8, 3u8, 122u8, + 247u8, 107u8, 7u8, 55u8, 20u8, 127u8, 171u8, 14u8, 177u8, 4u8, 225u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::pallet_parameters::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A Parameter was set."] + #[doc = ""] + #[doc = "Is also emitted when the value was not changed."] + pub struct Updated { + pub key: updated::Key, + pub old_value: updated::OldValue, + pub new_value: updated::NewValue, + } + pub mod updated { + use super::runtime_types; + pub type Key = runtime_types::rococo_runtime::RuntimeParametersKey; + pub type OldValue = + ::core::option::Option; + pub type NewValue = + ::core::option::Option; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for Updated { + const PALLET: &'static str = "Parameters"; + const EVENT: &'static str = "Updated"; + } + } + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod parameters { + use super::runtime_types; + pub type Parameters = runtime_types::rococo_runtime::RuntimeParametersValue; + pub type Param0 = runtime_types::rococo_runtime::RuntimeParametersKey; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Stored parameters."] + pub fn parameters_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::parameters::Parameters, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Parameters", + "Parameters", + (), + [ + 151u8, 247u8, 90u8, 253u8, 217u8, 155u8, 50u8, 150u8, 159u8, 224u8, + 124u8, 167u8, 68u8, 13u8, 0u8, 119u8, 152u8, 79u8, 233u8, 67u8, 226u8, + 226u8, 85u8, 11u8, 70u8, 154u8, 245u8, 119u8, 26u8, 172u8, 149u8, + 110u8, + ], + ) + } + #[doc = " Stored parameters."] + pub fn parameters( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::parameters::Param0, + >, + types::parameters::Parameters, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Parameters", + "Parameters", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 151u8, 247u8, 90u8, 253u8, 217u8, 155u8, 50u8, 150u8, 159u8, 224u8, + 124u8, 167u8, 68u8, 13u8, 0u8, 119u8, 152u8, 79u8, 233u8, 67u8, 226u8, + 226u8, 85u8, 11u8, 70u8, 154u8, 245u8, 119u8, 26u8, 172u8, 149u8, + 110u8, + ], + ) + } + } + } + } pub mod transaction_payment { use super::root_mod; use super::runtime_types; @@ -8262,10 +9698,10 @@ pub mod api { use super::runtime_types; pub struct ConstantsApi; impl ConstantsApi { - #[doc = " A fee mulitplier for `Operational` extrinsics to compute \"virtual tip\" to boost their"] + #[doc = " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their"] #[doc = " `priority`"] #[doc = ""] - #[doc = " This value is multipled by the `final_fee` to obtain a \"virtual tip\" that is later"] + #[doc = " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later"] #[doc = " added to a tip component in regular `priority` calculations."] #[doc = " It means that a `Normal` transaction can front-run a similarly-sized `Operational`"] #[doc = " extrinsic (with no tip), by including a tip value greater than the virtual tip."] @@ -8541,625 +9977,92 @@ pub mod api { pub mod historical { use super::root_mod; use super::runtime_types; - } - pub mod beefy { - use super::root_mod; - use super::runtime_types; - #[doc = "The `Error` enum of this pallet."] - pub type Error = runtime_types::pallet_beefy::pallet::Error; - #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] - pub type Call = runtime_types::pallet_beefy::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 :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "See [`Pallet::report_equivocation`]."] - pub struct ReportEquivocation { - pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - report_equivocation::EquivocationProof, - >, - pub key_owner_proof: report_equivocation::KeyOwnerProof, - } - pub mod report_equivocation { - use super::runtime_types; - pub type EquivocationProof = - runtime_types::sp_consensus_beefy::EquivocationProof< - ::core::primitive::u32, - runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, - runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, - >; - pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocation { - const PALLET: &'static str = "Beefy"; - const CALL: &'static str = "report_equivocation"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] - pub struct ReportEquivocationUnsigned { - pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - report_equivocation_unsigned::EquivocationProof, - >, - pub key_owner_proof: report_equivocation_unsigned::KeyOwnerProof, - } - pub mod report_equivocation_unsigned { - use super::runtime_types; - pub type EquivocationProof = - runtime_types::sp_consensus_beefy::EquivocationProof< - ::core::primitive::u32, - runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, - runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, - >; - pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocationUnsigned { - const PALLET: &'static str = "Beefy"; - const CALL: &'static str = "report_equivocation_unsigned"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "See [`Pallet::set_new_genesis`]."] - pub struct SetNewGenesis { - pub delay_in_blocks: set_new_genesis::DelayInBlocks, - } - pub mod set_new_genesis { - use super::runtime_types; - pub type DelayInBlocks = ::core::primitive::u32; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNewGenesis { - const PALLET: &'static str = "Beefy"; - const CALL: &'static str = "set_new_genesis"; - } - } - pub struct TransactionApi; - impl TransactionApi { - #[doc = "See [`Pallet::report_equivocation`]."] - pub fn report_equivocation( - &self, - equivocation_proof: types::report_equivocation::EquivocationProof, - key_owner_proof: types::report_equivocation::KeyOwnerProof, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Beefy", - "report_equivocation", - types::ReportEquivocation { - equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( - equivocation_proof, - ), - key_owner_proof, - }, - [ - 156u8, 32u8, 92u8, 179u8, 165u8, 93u8, 216u8, 130u8, 121u8, 225u8, - 33u8, 141u8, 255u8, 12u8, 101u8, 136u8, 177u8, 25u8, 23u8, 239u8, 12u8, - 142u8, 88u8, 228u8, 85u8, 171u8, 218u8, 185u8, 146u8, 245u8, 149u8, - 85u8, - ], - ) - } - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] - pub fn report_equivocation_unsigned( - &self, - equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, - key_owner_proof: types::report_equivocation_unsigned::KeyOwnerProof, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< - types::ReportEquivocationUnsigned, - > { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Beefy", - "report_equivocation_unsigned", - types::ReportEquivocationUnsigned { - equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( - equivocation_proof, - ), - key_owner_proof, - }, - [ - 126u8, 201u8, 236u8, 234u8, 107u8, 52u8, 37u8, 115u8, 228u8, 232u8, - 103u8, 193u8, 143u8, 224u8, 79u8, 192u8, 207u8, 204u8, 161u8, 103u8, - 210u8, 131u8, 64u8, 251u8, 48u8, 196u8, 249u8, 148u8, 2u8, 179u8, - 135u8, 121u8, - ], - ) - } - #[doc = "See [`Pallet::set_new_genesis`]."] - pub fn set_new_genesis( - &self, - delay_in_blocks: types::set_new_genesis::DelayInBlocks, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Beefy", - "set_new_genesis", - types::SetNewGenesis { delay_in_blocks }, - [ - 147u8, 6u8, 252u8, 43u8, 77u8, 91u8, 170u8, 45u8, 112u8, 155u8, 158u8, - 79u8, 1u8, 116u8, 162u8, 146u8, 181u8, 9u8, 171u8, 48u8, 198u8, 210u8, - 243u8, 64u8, 229u8, 35u8, 28u8, 177u8, 144u8, 22u8, 165u8, 163u8, - ], - ) - } - } - } pub mod storage { use super::runtime_types; pub mod types { use super::runtime_types; - pub mod authorities { + pub mod historical_sessions { use super::runtime_types; - pub type Authorities = - runtime_types::bounded_collections::bounded_vec::BoundedVec11< - runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, - >; + pub type HistoricalSessions = ( + ::subxt::ext::subxt_core::utils::H256, + ::core::primitive::u32, + ); + pub type Param0 = ::core::primitive::u32; } - pub mod validator_set_id { + pub mod stored_range { use super::runtime_types; - pub type ValidatorSetId = ::core::primitive::u64; - } - pub mod next_authorities { - use super::runtime_types; - pub type NextAuthorities = - runtime_types::bounded_collections::bounded_vec::BoundedVec11< - runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, - >; - } - pub mod set_id_session { - use super::runtime_types; - pub type SetIdSession = ::core::primitive::u32; - pub type Param0 = ::core::primitive::u64; - } - pub mod genesis_block { - use super::runtime_types; - pub type GenesisBlock = ::core::option::Option<::core::primitive::u32>; + pub type StoredRange = (::core::primitive::u32, ::core::primitive::u32); } } pub struct StorageApi; impl StorageApi { - #[doc = " The current authorities set"] - pub fn authorities( + #[doc = " Mapping from historical session indices to session-data root hash and validator count."] + pub fn historical_sessions_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::authorities::Authorities, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "Authorities", - (), - [ - 53u8, 171u8, 94u8, 33u8, 46u8, 83u8, 105u8, 120u8, 123u8, 201u8, 141u8, - 71u8, 131u8, 150u8, 51u8, 121u8, 67u8, 45u8, 249u8, 146u8, 85u8, 113u8, - 23u8, 59u8, 59u8, 41u8, 0u8, 226u8, 98u8, 166u8, 253u8, 59u8, - ], - ) - } - #[doc = " The current validator set id"] - pub fn validator_set_id( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::validator_set_id::ValidatorSetId, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "ValidatorSetId", - (), - [ - 168u8, 84u8, 23u8, 134u8, 153u8, 30u8, 183u8, 176u8, 206u8, 100u8, - 109u8, 86u8, 109u8, 126u8, 146u8, 175u8, 173u8, 1u8, 253u8, 42u8, - 122u8, 207u8, 71u8, 4u8, 145u8, 83u8, 148u8, 29u8, 243u8, 52u8, 29u8, - 78u8, - ], - ) - } - #[doc = " Authorities set scheduled to be used with the next session"] - pub fn next_authorities( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::next_authorities::NextAuthorities, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "NextAuthorities", - (), - [ - 87u8, 180u8, 0u8, 85u8, 209u8, 13u8, 131u8, 103u8, 8u8, 226u8, 42u8, - 72u8, 38u8, 47u8, 190u8, 78u8, 62u8, 4u8, 161u8, 130u8, 87u8, 196u8, - 13u8, 209u8, 205u8, 98u8, 104u8, 91u8, 3u8, 47u8, 82u8, 11u8, - ], - ) - } - #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"] - #[doc = " members were responsible."] - #[doc = ""] - #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"] - #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"] - #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"] - #[doc = " was the owner of a given key on a given session, and what the active set ID was"] - #[doc = " during that session."] - #[doc = ""] - #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."] - pub fn set_id_session_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::set_id_session::SetIdSession, + types::historical_sessions::HistoricalSessions, (), (), ::subxt::ext::subxt_core::utils::Yes, > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "SetIdSession", + "Historical", + "HistoricalSessions", (), [ - 47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8, - 65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8, - 238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8, + 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 = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"] - #[doc = " members were responsible."] - #[doc = ""] - #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"] - #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"] - #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"] - #[doc = " was the owner of a given key on a given session, and what the active set ID was"] - #[doc = " during that session."] - #[doc = ""] - #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."] - pub fn set_id_session( + #[doc = " Mapping from historical session indices to session-data root hash and validator count."] + pub fn historical_sessions( &self, - _0: impl ::core::borrow::Borrow, + _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::set_id_session::Param0, + types::historical_sessions::Param0, >, - types::set_id_session::SetIdSession, + types::historical_sessions::HistoricalSessions, ::subxt::ext::subxt_core::utils::Yes, (), (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "SetIdSession", + "Historical", + "HistoricalSessions", ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( _0.borrow(), ), [ - 47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8, - 65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8, - 238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8, + 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 = " Block number where BEEFY consensus is enabled/started."] - #[doc = " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively"] - #[doc = " restarted from the newly set block number."] - pub fn genesis_block( + #[doc = " The range of historical sessions we store. [first, last)"] + pub fn stored_range( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::genesis_block::GenesisBlock, - ::subxt::ext::subxt_core::utils::Yes, + types::stored_range::StoredRange, ::subxt::ext::subxt_core::utils::Yes, (), + (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Beefy", - "GenesisBlock", + "Historical", + "StoredRange", (), [ - 198u8, 155u8, 11u8, 240u8, 189u8, 245u8, 159u8, 127u8, 55u8, 33u8, - 48u8, 29u8, 209u8, 119u8, 163u8, 24u8, 28u8, 22u8, 163u8, 163u8, 124u8, - 88u8, 126u8, 4u8, 193u8, 158u8, 29u8, 243u8, 212u8, 4u8, 41u8, 22u8, - ], - ) - } - } - } - pub mod constants { - use super::runtime_types; - pub struct ConstantsApi; - impl ConstantsApi { - #[doc = " The maximum number of authorities that can be added."] - pub fn max_authorities( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Beefy", - "MaxAuthorities", - [ - 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 number of nominators for each validator."] - pub fn max_nominators( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Beefy", - "MaxNominators", - [ - 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 number of entries to keep in the set id to session index mapping."] - #[doc = ""] - #[doc = " Since the `SetIdSession` map is only used for validating equivocations this"] - #[doc = " value should relate to the bonding duration of whatever staking system is"] - #[doc = " being used (if any). If equivocation handling is not enabled then this value"] - #[doc = " can be zero."] - pub fn max_set_id_session_entries( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u64, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Beefy", - "MaxSetIdSessionEntries", - [ - 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 mmr { - use super::root_mod; - use super::runtime_types; - pub mod storage { - use super::runtime_types; - pub mod types { - use super::runtime_types; - pub mod root_hash { - use super::runtime_types; - pub type RootHash = ::subxt::ext::subxt_core::utils::H256; - } - pub mod number_of_leaves { - use super::runtime_types; - pub type NumberOfLeaves = ::core::primitive::u64; - } - pub mod nodes { - use super::runtime_types; - pub type Nodes = ::subxt::ext::subxt_core::utils::H256; - pub type Param0 = ::core::primitive::u64; - } - } - pub struct StorageApi; - impl StorageApi { - #[doc = " Latest MMR Root hash."] - pub fn root_hash( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::root_hash::RootHash, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Mmr", - "RootHash", - (), - [ - 111u8, 206u8, 173u8, 92u8, 67u8, 49u8, 150u8, 113u8, 90u8, 245u8, 38u8, - 254u8, 76u8, 250u8, 167u8, 66u8, 130u8, 129u8, 251u8, 220u8, 172u8, - 229u8, 162u8, 251u8, 36u8, 227u8, 43u8, 189u8, 7u8, 106u8, 23u8, 13u8, - ], - ) - } - #[doc = " Current size of the MMR (number of leaves)."] - pub fn number_of_leaves( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::number_of_leaves::NumberOfLeaves, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Mmr", - "NumberOfLeaves", - (), - [ - 123u8, 58u8, 149u8, 174u8, 85u8, 45u8, 20u8, 115u8, 241u8, 0u8, 51u8, - 174u8, 234u8, 60u8, 230u8, 59u8, 237u8, 144u8, 170u8, 32u8, 4u8, 0u8, - 34u8, 163u8, 238u8, 205u8, 93u8, 208u8, 53u8, 38u8, 141u8, 195u8, - ], - ) - } - #[doc = " Hashes of the nodes in the MMR."] - #[doc = ""] - #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"] - #[doc = " are pruned and only stored in the Offchain DB."] - pub fn nodes_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::nodes::Nodes, - (), - (), - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Mmr", - "Nodes", - (), - [ - 27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8, - 206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8, - 249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8, - ], - ) - } - #[doc = " Hashes of the nodes in the MMR."] - #[doc = ""] - #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"] - #[doc = " are pruned and only stored in the Offchain DB."] - pub fn nodes( - &self, - _0: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::nodes::Param0, - >, - types::nodes::Nodes, - ::subxt::ext::subxt_core::utils::Yes, - (), - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "Mmr", - "Nodes", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - [ - 27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8, - 206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8, - 249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8, - ], - ) - } - } - } - } - pub mod mmr_leaf { - use super::root_mod; - use super::runtime_types; - pub mod storage { - use super::runtime_types; - pub mod types { - use super::runtime_types; - pub mod beefy_authorities { - use super::runtime_types; - pub type BeefyAuthorities = - runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet< - ::subxt::ext::subxt_core::utils::H256, - >; - } - pub mod beefy_next_authorities { - use super::runtime_types; - pub type BeefyNextAuthorities = - runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet< - ::subxt::ext::subxt_core::utils::H256, - >; - } - } - pub struct StorageApi; - impl StorageApi { - #[doc = " Details of current BEEFY authority set."] - pub fn beefy_authorities( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::beefy_authorities::BeefyAuthorities, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "MmrLeaf", - "BeefyAuthorities", - (), - [ - 128u8, 35u8, 176u8, 79u8, 224u8, 58u8, 214u8, 234u8, 231u8, 71u8, - 227u8, 153u8, 180u8, 189u8, 66u8, 44u8, 47u8, 174u8, 0u8, 83u8, 121u8, - 182u8, 226u8, 44u8, 224u8, 173u8, 237u8, 102u8, 231u8, 146u8, 110u8, - 7u8, - ], - ) - } - #[doc = " Details of next BEEFY authority set."] - #[doc = ""] - #[doc = " This storage entry is used as cache for calls to `update_beefy_next_authority_set`."] - pub fn beefy_next_authorities( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::beefy_next_authorities::BeefyNextAuthorities, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "MmrLeaf", - "BeefyNextAuthorities", - (), - [ - 97u8, 71u8, 52u8, 111u8, 120u8, 251u8, 183u8, 155u8, 177u8, 100u8, - 236u8, 142u8, 204u8, 117u8, 95u8, 40u8, 201u8, 36u8, 32u8, 82u8, 38u8, - 234u8, 135u8, 39u8, 224u8, 69u8, 94u8, 85u8, 12u8, 89u8, 97u8, 218u8, + 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, ], ) } @@ -9193,7 +10096,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_keys`]."] + #[doc = "Sets the session key(s) of the function caller to `keys`."] + #[doc = "Allows an account to set its session key prior to becoming a validator."] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be signed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"] + #[doc = " fixed."] pub struct SetKeys { pub keys: set_keys::Keys, pub proof: set_keys::Proof, @@ -9222,7 +10133,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::purge_keys`]."] + #[doc = "Removes any session key(s) of the function caller."] + #[doc = ""] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be Signed and the account must be either be"] + #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"] + #[doc = "means being a controller account) or directly convertible into a validator ID (which"] + #[doc = "usually means being a stash account)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"] + #[doc = " `T::Keys::key_ids()` which is fixed."] pub struct PurgeKeys; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PurgeKeys { const PALLET: &'static str = "Session"; @@ -9231,7 +10153,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::set_keys`]."] + #[doc = "Sets the session key(s) of the function caller to `keys`."] + #[doc = "Allows an account to set its session key prior to becoming a validator."] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be signed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"] + #[doc = " fixed."] pub fn set_keys( &self, keys: types::set_keys::Keys, @@ -9243,13 +10173,24 @@ 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, + 251u8, 79u8, 44u8, 78u8, 55u8, 160u8, 150u8, 159u8, 183u8, 86u8, 129u8, + 32u8, 250u8, 138u8, 223u8, 100u8, 40u8, 203u8, 116u8, 224u8, 244u8, + 142u8, 7u8, 154u8, 147u8, 97u8, 160u8, 162u8, 95u8, 5u8, 213u8, 246u8, ], ) } - #[doc = "See [`Pallet::purge_keys`]."] + #[doc = "Removes any session key(s) of the function caller."] + #[doc = ""] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be Signed and the account must be either be"] + #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"] + #[doc = "means being a controller account) or directly convertible into a validator ID (which"] + #[doc = "usually means being a stash account)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"] + #[doc = " `T::Keys::key_ids()` which is fixed."] pub fn purge_keys( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -9423,9 +10364,9 @@ pub mod api { "QueuedKeys", (), [ - 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, + 54u8, 232u8, 4u8, 80u8, 89u8, 214u8, 20u8, 219u8, 48u8, 108u8, 26u8, + 89u8, 170u8, 210u8, 66u8, 37u8, 12u8, 60u8, 148u8, 186u8, 241u8, 64u8, + 83u8, 37u8, 124u8, 217u8, 51u8, 120u8, 148u8, 205u8, 85u8, 48u8, ], ) } @@ -9469,9 +10410,9 @@ pub mod api { "NextKeys", (), [ - 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, + 123u8, 233u8, 243u8, 13u8, 162u8, 60u8, 206u8, 97u8, 76u8, 43u8, 184u8, + 99u8, 17u8, 23u8, 110u8, 108u8, 131u8, 195u8, 109u8, 24u8, 217u8, 93u8, + 99u8, 41u8, 95u8, 196u8, 239u8, 243u8, 191u8, 131u8, 2u8, 57u8, ], ) } @@ -9495,9 +10436,9 @@ 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, + 123u8, 233u8, 243u8, 13u8, 162u8, 60u8, 206u8, 97u8, 76u8, 43u8, 184u8, + 99u8, 17u8, 23u8, 110u8, 108u8, 131u8, 195u8, 109u8, 24u8, 217u8, 93u8, + 99u8, 41u8, 95u8, 196u8, 239u8, 243u8, 191u8, 131u8, 2u8, 57u8, ], ) } @@ -9618,7 +10559,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] pub struct ReportEquivocation { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_equivocation::EquivocationProof, @@ -9652,7 +10596,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] pub struct ReportEquivocationUnsigned { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_equivocation_unsigned::EquivocationProof, @@ -9686,7 +10638,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::note_stalled`]."] + #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."] + #[doc = ""] + #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"] + #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"] + #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."] + #[doc = "The block production rate (which may be slowed down because of finality lagging) should"] + #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"] + #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"] + #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"] + #[doc = "block of all validators of the new authority set."] + #[doc = ""] + #[doc = "Only callable by root."] pub struct NoteStalled { pub delay: note_stalled::Delay, pub best_finalized_block_number: note_stalled::BestFinalizedBlockNumber, @@ -9703,7 +10666,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] pub fn report_equivocation( &self, equivocation_proof: types::report_equivocation::EquivocationProof, @@ -9720,13 +10686,22 @@ pub mod api { key_owner_proof, }, [ - 11u8, 183u8, 81u8, 93u8, 41u8, 7u8, 70u8, 155u8, 8u8, 57u8, 177u8, - 245u8, 131u8, 79u8, 236u8, 118u8, 147u8, 114u8, 40u8, 204u8, 177u8, - 2u8, 43u8, 42u8, 2u8, 201u8, 202u8, 120u8, 150u8, 109u8, 108u8, 156u8, + 197u8, 206u8, 246u8, 26u8, 171u8, 25u8, 214u8, 211u8, 138u8, 132u8, + 148u8, 48u8, 66u8, 12u8, 92u8, 17u8, 190u8, 155u8, 121u8, 222u8, 226u8, + 171u8, 208u8, 123u8, 253u8, 247u8, 253u8, 191u8, 90u8, 4u8, 224u8, + 104u8, ], ) } - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] pub fn report_equivocation_unsigned( &self, equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, @@ -9744,13 +10719,24 @@ pub mod api { key_owner_proof, }, [ - 141u8, 133u8, 227u8, 65u8, 22u8, 181u8, 108u8, 9u8, 157u8, 27u8, 124u8, - 53u8, 177u8, 27u8, 5u8, 16u8, 193u8, 66u8, 59u8, 87u8, 143u8, 238u8, - 251u8, 167u8, 117u8, 138u8, 246u8, 236u8, 65u8, 148u8, 20u8, 131u8, + 109u8, 97u8, 251u8, 184u8, 77u8, 61u8, 95u8, 187u8, 132u8, 146u8, 18u8, + 105u8, 109u8, 124u8, 181u8, 74u8, 143u8, 171u8, 248u8, 188u8, 69u8, + 63u8, 65u8, 92u8, 64u8, 42u8, 104u8, 131u8, 67u8, 202u8, 172u8, 73u8, ], ) } - #[doc = "See [`Pallet::note_stalled`]."] + #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."] + #[doc = ""] + #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"] + #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"] + #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."] + #[doc = "The block production rate (which may be slowed down because of finality lagging) should"] + #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"] + #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"] + #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"] + #[doc = "block of all validators of the new authority set."] + #[doc = ""] + #[doc = "Only callable by root."] pub fn note_stalled( &self, delay: types::note_stalled::Delay, @@ -9866,6 +10852,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::WeakBoundedVec4<( + runtime_types::sp_consensus_grandpa::app::Public, + ::core::primitive::u64, + )>; + } } pub struct StorageApi; impl StorageApi { @@ -9905,10 +10899,10 @@ pub mod api { "PendingChange", (), [ - 150u8, 194u8, 185u8, 248u8, 239u8, 43u8, 141u8, 253u8, 61u8, 106u8, - 74u8, 164u8, 209u8, 204u8, 206u8, 200u8, 32u8, 38u8, 11u8, 78u8, 84u8, - 243u8, 181u8, 142u8, 179u8, 151u8, 81u8, 204u8, 244u8, 150u8, 137u8, - 250u8, + 32u8, 165u8, 141u8, 100u8, 109u8, 66u8, 58u8, 22u8, 118u8, 84u8, 92u8, + 164u8, 119u8, 130u8, 104u8, 25u8, 244u8, 111u8, 223u8, 54u8, 184u8, + 95u8, 196u8, 30u8, 244u8, 129u8, 110u8, 127u8, 200u8, 66u8, 226u8, + 26u8, ], ) } @@ -10042,6 +11036,28 @@ pub mod api { ], ) } + #[doc = " The current list of authorities."] + pub fn authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::authorities::Authorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Grandpa", + "Authorities", + (), + [ + 192u8, 157u8, 98u8, 244u8, 104u8, 38u8, 195u8, 114u8, 183u8, 62u8, + 247u8, 18u8, 31u8, 152u8, 246u8, 206u8, 97u8, 13u8, 118u8, 211u8, + 104u8, 54u8, 150u8, 152u8, 126u8, 170u8, 228u8, 158u8, 108u8, 129u8, + 134u8, 44u8, + ], + ) + } } } pub mod constants { @@ -10107,206 +11123,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 :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::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::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::events::StaticEvent for HeartbeatReceived { - const PALLET: &'static str = "ImOnline"; - const EVENT: &'static str = "HeartbeatReceived"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "At the end of the session, no offence was committed."] - pub struct AllGood; - impl ::subxt::ext::subxt_core::events::StaticEvent for AllGood { - const PALLET: &'static str = "ImOnline"; - const EVENT: &'static str = "AllGood"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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 = ::subxt::ext::subxt_core::alloc::vec::Vec<( - ::subxt::ext::subxt_core::utils::AccountId32, - (), - )>; - } - impl ::subxt::ext::subxt_core::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::WeakBoundedVec5< - 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::ext::subxt_core::utils::AccountId32; + pub type NextKeys = + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec5< + 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::ext::subxt_core::storage::address::StaticAddress< - (), - types::heartbeat_after::HeartbeatAfter, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "HeartbeatAfter", - (), - [ - 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::ext::subxt_core::storage::address::StaticAddress< @@ -10317,223 +11158,41 @@ pub mod api { (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", + "AuthorityDiscovery", "Keys", (), [ - 111u8, 104u8, 188u8, 46u8, 152u8, 140u8, 137u8, 244u8, 52u8, 214u8, - 115u8, 156u8, 39u8, 239u8, 15u8, 168u8, 193u8, 125u8, 57u8, 195u8, - 250u8, 156u8, 234u8, 222u8, 222u8, 253u8, 135u8, 232u8, 196u8, 163u8, - 29u8, 218u8, + 35u8, 71u8, 73u8, 255u8, 160u8, 250u8, 38u8, 205u8, 32u8, 139u8, 236u8, + 83u8, 194u8, 12u8, 20u8, 221u8, 114u8, 94u8, 196u8, 246u8, 136u8, + 175u8, 70u8, 98u8, 91u8, 50u8, 236u8, 131u8, 131u8, 146u8, 150u8, + 192u8, ], ) } - #[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::ext::subxt_core::storage::address::StaticAddress< (), - types::received_heartbeats::ReceivedHeartbeats, - (), - (), + types::next_keys::NextKeys, ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "ReceivedHeartbeats", + "AuthorityDiscovery", + "NextKeys", (), [ - 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 ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::received_heartbeats::Param0, - >, - types::received_heartbeats::ReceivedHeartbeats, - (), - (), - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "ReceivedHeartbeats", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _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 ::core::borrow::Borrow, - _1: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ( - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::received_heartbeats::Param0, - >, - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::received_heartbeats::Param1, - >, - ), - types::received_heartbeats::ReceivedHeartbeats, - ::subxt::ext::subxt_core::utils::Yes, - (), - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "ReceivedHeartbeats", - ( - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _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::ext::subxt_core::storage::address::StaticAddress< - (), - types::authored_blocks::AuthoredBlocks, - (), - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "AuthoredBlocks", - (), - [ - 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 ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::authored_blocks::Param0, - >, - types::authored_blocks::AuthoredBlocks, - (), - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "AuthoredBlocks", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _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 ::core::borrow::Borrow, - _1: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ( - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::authored_blocks::Param0, - >, - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::authored_blocks::Param1, - >, - ), - types::authored_blocks::AuthoredBlocks, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ImOnline", - "AuthoredBlocks", - ( - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _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, + 54u8, 44u8, 61u8, 196u8, 2u8, 249u8, 185u8, 199u8, 245u8, 154u8, 178u8, + 109u8, 237u8, 147u8, 72u8, 209u8, 72u8, 196u8, 31u8, 192u8, 217u8, + 231u8, 71u8, 28u8, 148u8, 138u8, 29u8, 115u8, 247u8, 95u8, 185u8, + 189u8, ], ) } } } - 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::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u64, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::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; @@ -10562,7 +11221,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::propose_spend`]."] + #[doc = "Put forward a suggestion for spending."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] + #[doc = "It is returned once the proposal is awarded."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Proposed`] if successful."] pub struct ProposeSpend { #[codec(compact)] pub value: propose_spend::Value, @@ -10594,7 +11268,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reject_proposal`]."] + #[doc = "Reject a proposed spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "The original deposit will be slashed."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Rejected`] if successful."] pub struct RejectProposal { #[codec(compact)] pub proposal_id: reject_proposal::ProposalId, @@ -10621,7 +11309,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::approve_proposal`]."] + #[doc = "Approve a proposal."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::ApproveOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] + #[doc = "deposit will be returned."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = " - O(1)."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "No events are emitted from this dispatch."] pub struct ApproveProposal { #[codec(compact)] pub proposal_id: approve_proposal::ProposalId, @@ -10648,7 +11352,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::spend_local`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."] + #[doc = ""] + #[doc = "### Details"] + #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"] + #[doc = "beneficiary."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The destination account for the transfer."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::SpendApproved`] if successful."] pub struct SpendLocal { #[codec(compact)] pub amount: spend_local::Amount, @@ -10680,7 +11400,27 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_approval`]."] + #[doc = "Force a previously approved proposal to be removed from the approval queue."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The original deposit will no longer be returned."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `proposal_id`: The index of a proposal"] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(A) where `A` is the number of approvals"] + #[doc = ""] + #[doc = "### Errors"] + #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"] + #[doc = " approval queue, i.e., the proposal has not been approved. This could also mean the"] + #[doc = " proposal does not exist altogether, thus there is no way it would have been approved"] + #[doc = " in the first place."] pub struct RemoveApproval { #[codec(compact)] pub proposal_id: remove_approval::ProposalId, @@ -10707,7 +11447,32 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::spend`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"] + #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"] + #[doc = "for assertion using the [`Config::BalanceConverter`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"] + #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"] + #[doc = "the [`Config::PayoutPeriod`]."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The beneficiary of the spend."] + #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"] + #[doc = " the past if the resulting spend has not yet expired according to the"] + #[doc = " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"] + #[doc = " approval."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendApproved`] if successful."] pub struct Spend { pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box, #[codec(compact)] @@ -10721,7 +11486,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::ext::subxt_core::blocks::StaticExtrinsic for Spend { @@ -10742,7 +11507,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::payout`]."] + #[doc = "Claim a spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"] + #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."] + #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"] + #[doc = "dispatchable before retrying with the current function."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Paid`] if successful."] pub struct Payout { pub index: payout::Index, } @@ -10768,7 +11551,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::check_status`]."] + #[doc = "Check the status of the spend and remove it from the storage if processed."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The status check is a prerequisite for retrying a failed payout."] + #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"] + #[doc = "function. In such instances, transaction fees are refunded."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."] + #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."] pub struct CheckStatus { pub index: check_status::Index, } @@ -10794,7 +11595,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::void_spend`]."] + #[doc = "Void previously approved spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "A spend void is only possible if the payout has not been attempted yet."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendVoided`] if successful."] pub struct VoidSpend { pub index: void_spend::Index, } @@ -10809,7 +11625,22 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::propose_spend`]."] + #[doc = "Put forward a suggestion for spending."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] + #[doc = "It is returned once the proposal is awarded."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Proposed`] if successful."] pub fn propose_spend( &self, value: types::propose_spend::Value, @@ -10827,7 +11658,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::reject_proposal`]."] + #[doc = "Reject a proposed spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "The original deposit will be slashed."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Rejected`] if successful."] pub fn reject_proposal( &self, proposal_id: types::reject_proposal::ProposalId, @@ -10844,7 +11689,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::approve_proposal`]."] + #[doc = "Approve a proposal."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::ApproveOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] + #[doc = "deposit will be returned."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = " - O(1)."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "No events are emitted from this dispatch."] pub fn approve_proposal( &self, proposal_id: types::approve_proposal::ProposalId, @@ -10861,7 +11722,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::spend_local`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."] + #[doc = ""] + #[doc = "### Details"] + #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"] + #[doc = "beneficiary."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The destination account for the transfer."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::SpendApproved`] if successful."] pub fn spend_local( &self, amount: types::spend_local::Amount, @@ -10882,7 +11759,27 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_approval`]."] + #[doc = "Force a previously approved proposal to be removed from the approval queue."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The original deposit will no longer be returned."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `proposal_id`: The index of a proposal"] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(A) where `A` is the number of approvals"] + #[doc = ""] + #[doc = "### Errors"] + #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"] + #[doc = " approval queue, i.e., the proposal has not been approved. This could also mean the"] + #[doc = " proposal does not exist altogether, thus there is no way it would have been approved"] + #[doc = " in the first place."] pub fn remove_approval( &self, proposal_id: types::remove_approval::ProposalId, @@ -10900,7 +11797,32 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::spend`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"] + #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"] + #[doc = "for assertion using the [`Config::BalanceConverter`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"] + #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"] + #[doc = "the [`Config::PayoutPeriod`]."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The beneficiary of the spend."] + #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"] + #[doc = " the past if the resulting spend has not yet expired according to the"] + #[doc = " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"] + #[doc = " approval."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendApproved`] if successful."] pub fn spend( &self, asset_kind: types::spend::AssetKind, @@ -10923,14 +11845,32 @@ 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, ], ) } - #[doc = "See [`Pallet::payout`]."] + #[doc = "Claim a spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"] + #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."] + #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"] + #[doc = "dispatchable before retrying with the current function."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Paid`] if successful."] pub fn payout( &self, index: types::payout::Index, @@ -10947,7 +11887,25 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::check_status`]."] + #[doc = "Check the status of the spend and remove it from the storage if processed."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The status check is a prerequisite for retrying a failed payout."] + #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"] + #[doc = "function. In such instances, transaction fees are refunded."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."] + #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."] pub fn check_status( &self, index: types::check_status::Index, @@ -10964,7 +11922,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::void_spend`]."] + #[doc = "Void previously approved spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "A spend void is only possible if the payout has not been attempted yet."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendVoided`] if successful."] pub fn void_spend( &self, index: types::void_spend::Index, @@ -11222,7 +12195,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; } @@ -11360,7 +12333,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, >; @@ -11519,10 +12492,10 @@ pub mod api { "Spends", (), [ - 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, ], ) } @@ -11546,10 +12519,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, ], ) } @@ -11724,7 +12697,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vote`]."] + #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"] + #[doc = "otherwise it is a vote to keep the status quo."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `poll_index`: The index of the poll to vote for."] + #[doc = "- `vote`: The vote configuration."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."] pub struct Vote { #[codec(compact)] pub poll_index: vote::PollIndex, @@ -11755,7 +12736,29 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::delegate`]."] + #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"] + #[doc = "particular class of polls."] + #[doc = ""] + #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] + #[doc = "time appropriate for the conviction's lock period."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] + #[doc = " - be delegating already; or"] + #[doc = " - have no voting activity (if there is, then it will need to be removed through"] + #[doc = " `remove_vote`)."] + #[doc = ""] + #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."] + #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"] + #[doc = " to this function are required."] + #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] + #[doc = " account is undelegated, the funds will be locked for the corresponding period."] + #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] + #[doc = " be more than the account's current balance."] + #[doc = ""] + #[doc = "Emits `Delegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] pub struct Delegate { pub class: delegate::Class, pub to: delegate::To, @@ -11791,7 +12794,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::undelegate`]."] + #[doc = "Undelegate the voting power of the sending account for a particular class of polls."] + #[doc = ""] + #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] + #[doc = "of the conviction with which the delegation was issued has passed."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] + #[doc = "currently delegating."] + #[doc = ""] + #[doc = "- `class`: The class of polls to remove the delegation from."] + #[doc = ""] + #[doc = "Emits `Undelegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] pub struct Undelegate { pub class: undelegate::Class, } @@ -11817,7 +12833,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unlock`]."] + #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"] + #[doc = "class."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `class`: The class of polls to unlock."] + #[doc = "- `target`: The account to remove the lock on."] + #[doc = ""] + #[doc = "Weight: `O(R)` with R number of vote of target."] pub struct Unlock { pub class: unlock::Class, pub target: unlock::Target, @@ -11848,7 +12872,35 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If:"] + #[doc = "- the poll was cancelled, or"] + #[doc = "- the poll is ongoing, or"] + #[doc = "- the poll has ended such that"] + #[doc = " - the vote of the account was in opposition to the result; or"] + #[doc = " - there was no conviction to the account's vote; or"] + #[doc = " - the account made a split vote"] + #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] + #[doc = "funds being available."] + #[doc = ""] + #[doc = "If, however, the poll has ended and:"] + #[doc = "- it finished corresponding to the vote of the account, and"] + #[doc = "- the account made a standard vote with conviction, and"] + #[doc = "- the lock period of the conviction is not over"] + #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] + #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] + #[doc = "of both the amount locked and the time is it locked for)."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] + #[doc = "registered for poll `index`."] + #[doc = ""] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"] + #[doc = " which have finished or are cancelled, this must be `Some`."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] pub struct RemoveVote { pub class: remove_vote::Class, pub index: remove_vote::Index, @@ -11876,7 +12928,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_other_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] + #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] + #[doc = "either because the poll was cancelled, because the voter lost the poll or"] + #[doc = "because the conviction period is over."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"] + #[doc = " `index`."] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: The class of the poll."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] pub struct RemoveOtherVote { pub target: remove_other_vote::Target, pub class: remove_other_vote::Class, @@ -11898,7 +12965,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::vote`]."] + #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"] + #[doc = "otherwise it is a vote to keep the status quo."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `poll_index`: The index of the poll to vote for."] + #[doc = "- `vote`: The vote configuration."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."] pub fn vote( &self, poll_index: types::vote::PollIndex, @@ -11917,7 +12992,29 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::delegate`]."] + #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"] + #[doc = "particular class of polls."] + #[doc = ""] + #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] + #[doc = "time appropriate for the conviction's lock period."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] + #[doc = " - be delegating already; or"] + #[doc = " - have no voting activity (if there is, then it will need to be removed through"] + #[doc = " `remove_vote`)."] + #[doc = ""] + #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."] + #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"] + #[doc = " to this function are required."] + #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] + #[doc = " account is undelegated, the funds will be locked for the corresponding period."] + #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] + #[doc = " be more than the account's current balance."] + #[doc = ""] + #[doc = "Emits `Delegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] pub fn delegate( &self, class: types::delegate::Class, @@ -11942,7 +13039,20 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::undelegate`]."] + #[doc = "Undelegate the voting power of the sending account for a particular class of polls."] + #[doc = ""] + #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] + #[doc = "of the conviction with which the delegation was issued has passed."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] + #[doc = "currently delegating."] + #[doc = ""] + #[doc = "- `class`: The class of polls to remove the delegation from."] + #[doc = ""] + #[doc = "Emits `Undelegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] pub fn undelegate( &self, class: types::undelegate::Class, @@ -11960,7 +13070,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unlock`]."] + #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"] + #[doc = "class."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `class`: The class of polls to unlock."] + #[doc = "- `target`: The account to remove the lock on."] + #[doc = ""] + #[doc = "Weight: `O(R)` with R number of vote of target."] pub fn unlock( &self, class: types::unlock::Class, @@ -11979,7 +13097,35 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If:"] + #[doc = "- the poll was cancelled, or"] + #[doc = "- the poll is ongoing, or"] + #[doc = "- the poll has ended such that"] + #[doc = " - the vote of the account was in opposition to the result; or"] + #[doc = " - there was no conviction to the account's vote; or"] + #[doc = " - the account made a split vote"] + #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] + #[doc = "funds being available."] + #[doc = ""] + #[doc = "If, however, the poll has ended and:"] + #[doc = "- it finished corresponding to the vote of the account, and"] + #[doc = "- the account made a standard vote with conviction, and"] + #[doc = "- the lock period of the conviction is not over"] + #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] + #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] + #[doc = "of both the amount locked and the time is it locked for)."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] + #[doc = "registered for poll `index`."] + #[doc = ""] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"] + #[doc = " which have finished or are cancelled, this must be `Some`."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] pub fn remove_vote( &self, class: types::remove_vote::Class, @@ -11998,7 +13144,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_other_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] + #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] + #[doc = "either because the poll was cancelled, because the voter lost the poll or"] + #[doc = "because the conviction period is over."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"] + #[doc = " `index`."] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: The class of the poll."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] pub fn remove_other_vote( &self, target: types::remove_other_vote::Target, @@ -12310,7 +13471,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] pub struct Submit { pub proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -12347,7 +13516,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] pub struct PlaceDecisionDeposit { pub index: place_decision_deposit::Index, } @@ -12373,7 +13549,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] pub struct RefundDecisionDeposit { pub index: refund_decision_deposit::Index, } @@ -12399,7 +13581,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] pub struct Cancel { pub index: cancel::Index, } @@ -12425,7 +13612,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] pub struct Kill { pub index: kill::Index, } @@ -12451,7 +13643,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] pub struct NudgeReferendum { pub index: nudge_referendum::Index, } @@ -12477,7 +13672,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] pub struct OneFewerDeciding { pub track: one_fewer_deciding::Track, } @@ -12503,7 +13706,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] pub struct RefundSubmissionDeposit { pub index: refund_submission_deposit::Index, } @@ -12529,7 +13738,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] pub struct SetMetadata { pub index: set_metadata::Index, pub maybe_hash: set_metadata::MaybeHash, @@ -12547,7 +13762,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] pub fn submit( &self, proposal_origin: types::submit::ProposalOrigin, @@ -12566,14 +13789,20 @@ 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, ], ) } - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] pub fn place_decision_deposit( &self, index: types::place_decision_deposit::Index, @@ -12590,7 +13819,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] pub fn refund_decision_deposit( &self, index: types::refund_decision_deposit::Index, @@ -12608,7 +13843,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] pub fn cancel( &self, index: types::cancel::Index, @@ -12626,7 +13866,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] pub fn kill( &self, index: types::kill::Index, @@ -12644,7 +13889,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] pub fn nudge_referendum( &self, index: types::nudge_referendum::Index, @@ -12662,7 +13910,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] pub fn one_fewer_deciding( &self, track: types::one_fewer_deciding::Track, @@ -12680,7 +13936,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] pub fn refund_submission_deposit( &self, index: types::refund_submission_deposit::Index, @@ -12698,7 +13960,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] pub fn set_metadata( &self, index: types::set_metadata::Index, @@ -12814,7 +14082,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "A deposit has been slashaed."] + #[doc = "A deposit has been slashed."] pub struct DepositSlashed { pub who: deposit_slashed::Who, pub amount: deposit_slashed::Amount, @@ -13211,9 +14479,10 @@ pub mod api { "ReferendumInfoFor", (), [ - 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, ], ) } @@ -13237,9 +14506,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, ], ) } @@ -13533,7 +14803,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_member`]."] + #[doc = "Introduce a new member."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AddOrigin`."] + #[doc = "- `who`: Account of non-member which will become a member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] pub struct AddMember { pub who: add_member::Who, } @@ -13562,7 +14837,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::promote_member`]."] + #[doc = "Increment the rank of an existing member by one."] + #[doc = ""] + #[doc = "- `origin`: Must be the `PromoteOrigin`."] + #[doc = "- `who`: Account of existing member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] pub struct PromoteMember { pub who: promote_member::Who, } @@ -13591,7 +14871,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::demote_member`]."] + #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"] + #[doc = "then they are removed entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `DemoteOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."] pub struct DemoteMember { pub who: demote_member::Who, } @@ -13620,7 +14906,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_member`]."] + #[doc = "Remove the member entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `RemoveOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = "- `min_rank`: The rank of the member or greater."] + #[doc = ""] + #[doc = "Weight: `O(min_rank)`."] pub struct RemoveMember { pub who: remove_member::Who, pub min_rank: remove_member::MinRank, @@ -13651,7 +14943,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vote`]."] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by a member account."] + #[doc = "- `poll`: Index of a poll which is ongoing."] + #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."] + #[doc = ""] + #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."] pub struct Vote { pub poll: vote::Poll, pub aye: vote::Aye, @@ -13679,7 +14981,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cleanup_poll`]."] + #[doc = "Remove votes from the given poll. It must have ended."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by any account."] + #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"] + #[doc = " exist."] + #[doc = "- `max`: Maximum number of vote items from remove in this call."] + #[doc = ""] + #[doc = "Transaction fees are waived if the operation is successful."] + #[doc = ""] + #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."] pub struct CleanupPoll { pub poll_index: cleanup_poll::PollIndex, pub max: cleanup_poll::Max, @@ -13693,10 +15004,53 @@ pub mod api { const PALLET: &'static str = "FellowshipCollective"; const CALL: &'static str = "cleanup_poll"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Exchanges a member with a new account and the same existing rank."] + #[doc = ""] + #[doc = "- `origin`: Must be the `ExchangeOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."] + #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."] + pub struct ExchangeMember { + pub who: exchange_member::Who, + pub new_who: exchange_member::NewWho, + } + pub mod exchange_member { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type NewWho = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ExchangeMember { + const PALLET: &'static str = "FellowshipCollective"; + const CALL: &'static str = "exchange_member"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::add_member`]."] + #[doc = "Introduce a new member."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AddOrigin`."] + #[doc = "- `who`: Account of non-member which will become a member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] pub fn add_member( &self, who: types::add_member::Who, @@ -13713,7 +15067,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::promote_member`]."] + #[doc = "Increment the rank of an existing member by one."] + #[doc = ""] + #[doc = "- `origin`: Must be the `PromoteOrigin`."] + #[doc = "- `who`: Account of existing member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] pub fn promote_member( &self, who: types::promote_member::Who, @@ -13731,7 +15090,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::demote_member`]."] + #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"] + #[doc = "then they are removed entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `DemoteOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."] pub fn demote_member( &self, who: types::demote_member::Who, @@ -13749,7 +15114,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_member`]."] + #[doc = "Remove the member entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `RemoveOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = "- `min_rank`: The rank of the member or greater."] + #[doc = ""] + #[doc = "Weight: `O(min_rank)`."] pub fn remove_member( &self, who: types::remove_member::Who, @@ -13768,7 +15139,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vote`]."] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by a member account."] + #[doc = "- `poll`: Index of a poll which is ongoing."] + #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."] + #[doc = ""] + #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."] pub fn vote( &self, poll: types::vote::Poll, @@ -13786,7 +15167,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cleanup_poll`]."] + #[doc = "Remove votes from the given poll. It must have ended."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by any account."] + #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"] + #[doc = " exist."] + #[doc = "- `max`: Maximum number of vote items from remove in this call."] + #[doc = ""] + #[doc = "Transaction fees are waived if the operation is successful."] + #[doc = ""] + #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."] pub fn cleanup_poll( &self, poll_index: types::cleanup_poll::PollIndex, @@ -13805,6 +15195,29 @@ pub mod api { ], ) } + #[doc = "Exchanges a member with a new account and the same existing rank."] + #[doc = ""] + #[doc = "- `origin`: Must be the `ExchangeOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."] + #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."] + pub fn exchange_member( + &self, + who: types::exchange_member::Who, + new_who: types::exchange_member::NewWho, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "FellowshipCollective", + "exchange_member", + types::ExchangeMember { who, new_who }, + [ + 240u8, 208u8, 76u8, 147u8, 117u8, 23u8, 91u8, 37u8, 22u8, 101u8, 53u8, + 247u8, 161u8, 94u8, 109u8, 233u8, 104u8, 129u8, 67u8, 31u8, 223u8, + 182u8, 50u8, 233u8, 120u8, 129u8, 224u8, 135u8, 52u8, 162u8, 26u8, + 189u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -13910,6 +15323,30 @@ pub mod api { const PALLET: &'static str = "FellowshipCollective"; const EVENT: &'static str = "Voted"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The member `who` had their `AccountId` changed to `new_who`."] + pub struct MemberExchanged { + pub who: member_exchanged::Who, + pub new_who: member_exchanged::NewWho, + } + pub mod member_exchanged { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type NewWho = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for MemberExchanged { + const PALLET: &'static str = "FellowshipCollective"; + const EVENT: &'static str = "MemberExchanged"; + } } pub mod storage { use super::runtime_types; @@ -13946,7 +15383,7 @@ pub mod api { pub mod voting_cleanup { use super::runtime_types; pub type VotingCleanup = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -14388,7 +15825,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] pub struct Submit { pub proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -14425,7 +15870,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] pub struct PlaceDecisionDeposit { pub index: place_decision_deposit::Index, } @@ -14451,7 +15903,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] pub struct RefundDecisionDeposit { pub index: refund_decision_deposit::Index, } @@ -14477,7 +15935,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] pub struct Cancel { pub index: cancel::Index, } @@ -14503,7 +15966,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] pub struct Kill { pub index: kill::Index, } @@ -14529,7 +15997,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] pub struct NudgeReferendum { pub index: nudge_referendum::Index, } @@ -14555,7 +16026,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] pub struct OneFewerDeciding { pub track: one_fewer_deciding::Track, } @@ -14581,7 +16060,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] pub struct RefundSubmissionDeposit { pub index: refund_submission_deposit::Index, } @@ -14607,7 +16092,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] pub struct SetMetadata { pub index: set_metadata::Index, pub maybe_hash: set_metadata::MaybeHash, @@ -14625,7 +16116,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] pub fn submit( &self, proposal_origin: types::submit::ProposalOrigin, @@ -14644,14 +16143,20 @@ 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, ], ) } - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] pub fn place_decision_deposit( &self, index: types::place_decision_deposit::Index, @@ -14668,7 +16173,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] pub fn refund_decision_deposit( &self, index: types::refund_decision_deposit::Index, @@ -14686,7 +16197,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] pub fn cancel( &self, index: types::cancel::Index, @@ -14704,7 +16220,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] pub fn kill( &self, index: types::kill::Index, @@ -14722,7 +16243,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] pub fn nudge_referendum( &self, index: types::nudge_referendum::Index, @@ -14740,7 +16264,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] pub fn one_fewer_deciding( &self, track: types::one_fewer_deciding::Track, @@ -14758,7 +16290,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] pub fn refund_submission_deposit( &self, index: types::refund_submission_deposit::Index, @@ -14776,7 +16314,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] pub fn set_metadata( &self, index: types::set_metadata::Index, @@ -14892,7 +16436,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "A deposit has been slashaed."] + #[doc = "A deposit has been slashed."] pub struct DepositSlashed { pub who: deposit_slashed::Who, pub amount: deposit_slashed::Amount, @@ -15281,9 +16825,10 @@ pub mod api { "ReferendumInfoFor", (), [ - 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, ], ) } @@ -15307,9 +16852,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, ], ) } @@ -15578,6 +17124,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; @@ -15605,7 +17155,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::whitelist_call`]."] pub struct WhitelistCall { pub call_hash: whitelist_call::CallHash, } @@ -15631,7 +17180,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_whitelisted_call`]."] pub struct RemoveWhitelistedCall { pub call_hash: remove_whitelisted_call::CallHash, } @@ -15657,7 +17205,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dispatch_whitelisted_call`]."] pub struct DispatchWhitelistedCall { pub call_hash: dispatch_whitelisted_call::CallHash, pub call_encoded_len: dispatch_whitelisted_call::CallEncodedLen, @@ -15687,7 +17234,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dispatch_whitelisted_call_with_preimage`]."] pub struct DispatchWhitelistedCallWithPreimage { pub call: ::subxt::ext::subxt_core::alloc::boxed::Box< dispatch_whitelisted_call_with_preimage::Call, @@ -15704,7 +17250,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::whitelist_call`]."] pub fn whitelist_call( &self, call_hash: types::whitelist_call::CallHash, @@ -15722,7 +17267,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_whitelisted_call`]."] pub fn remove_whitelisted_call( &self, call_hash: types::remove_whitelisted_call::CallHash, @@ -15741,7 +17285,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dispatch_whitelisted_call`]."] pub fn dispatch_whitelisted_call( &self, call_hash: types::dispatch_whitelisted_call::CallHash, @@ -15766,7 +17309,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dispatch_whitelisted_call_with_preimage`]."] pub fn dispatch_whitelisted_call_with_preimage( &self, call: types::dispatch_whitelisted_call_with_preimage::Call, @@ -15780,10 +17322,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 85u8, 176u8, 96u8, 176u8, 10u8, 112u8, 30u8, 206u8, 107u8, 111u8, - 195u8, 253u8, 48u8, 252u8, 56u8, 75u8, 138u8, 201u8, 222u8, 79u8, - 234u8, 5u8, 81u8, 108u8, 103u8, 189u8, 81u8, 151u8, 57u8, 135u8, 63u8, - 222u8, + 133u8, 37u8, 36u8, 132u8, 146u8, 219u8, 42u8, 15u8, 124u8, 225u8, + 111u8, 74u8, 26u8, 143u8, 134u8, 254u8, 206u8, 144u8, 20u8, 148u8, + 233u8, 86u8, 223u8, 85u8, 243u8, 7u8, 153u8, 29u8, 31u8, 181u8, 33u8, + 144u8, ], ) } @@ -15951,7 +17493,30 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim`]."] + #[doc = "Make a claim to collect your DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to claim is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub struct Claim { pub dest: claim::Dest, pub ethereum_signature: claim::EthereumSignature, @@ -15980,7 +17545,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::mint_claim`]."] + #[doc = "Mint a new claim to collect DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The Ethereum address allowed to collect this claim."] + #[doc = "- `value`: The number of DOTs that will be claimed."] + #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "We assume worst case that both vesting and statement is being inserted."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub struct MintClaim { pub who: mint_claim::Who, pub value: mint_claim::Value, @@ -16018,7 +17597,33 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_attest`]."] + #[doc = "Make a claim to collect your DOTs by signing a statement."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)(statement)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"] + #[doc = "expected according to your purchase arrangement."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim_attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub struct ClaimAttest { pub dest: claim_attest::Dest, pub ethereum_signature: claim_attest::EthereumSignature, @@ -16050,7 +17655,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::attest`]."] + #[doc = "Attest to a statement, needed to finalize the claims process."] + #[doc = ""] + #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"] + #[doc = "`SignedExtension`."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"] + #[doc = "and provides a `statement` which is expected for the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to do pre-validation on `attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub struct Attest { pub statement: attest::Statement, } @@ -16077,7 +17700,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::move_claim`]."] pub struct MoveClaim { pub old: move_claim::Old, pub new: move_claim::New, @@ -16097,7 +17719,30 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::claim`]."] + #[doc = "Make a claim to collect your DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to claim is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub fn claim( &self, dest: types::claim::Dest, @@ -16119,7 +17764,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::mint_claim`]."] + #[doc = "Mint a new claim to collect DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The Ethereum address allowed to collect this claim."] + #[doc = "- `value`: The number of DOTs that will be claimed."] + #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "We assume worst case that both vesting and statement is being inserted."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub fn mint_claim( &self, who: types::mint_claim::Who, @@ -16144,7 +17803,33 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_attest`]."] + #[doc = "Make a claim to collect your DOTs by signing a statement."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)(statement)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"] + #[doc = "expected according to your purchase arrangement."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim_attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub fn claim_attest( &self, dest: types::claim_attest::Dest, @@ -16167,7 +17852,25 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::attest`]."] + #[doc = "Attest to a statement, needed to finalize the claims process."] + #[doc = ""] + #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"] + #[doc = "`SignedExtension`."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"] + #[doc = "and provides a `statement` which is expected for the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to do pre-validation on `attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] pub fn attest( &self, statement: types::attest::Statement, @@ -16185,7 +17888,6 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::move_claim`]."] pub fn move_claim( &self, old: types::move_claim::Old, @@ -16554,7 +18256,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + #[doc = ""] + #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"] + #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"] + #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"] + #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"] + #[doc = "event is deposited."] pub struct Batch { pub calls: batch::Calls, } @@ -16582,7 +18301,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::as_derivative`]."] + #[doc = "Send a call through an indexed pseudonym of the sender."] + #[doc = ""] + #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"] + #[doc = "use the same filter as the origin of this call."] + #[doc = ""] + #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."] + #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"] + #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"] + #[doc = "in the Multisig pallet instead."] + #[doc = ""] + #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub struct AsDerivative { pub index: as_derivative::Index, pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -16610,7 +18341,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::batch_all`]."] + #[doc = "Send a batch of dispatch calls and atomically execute them."] + #[doc = "The whole transaction will rollback and fail if any of the calls failed."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] pub struct BatchAll { pub calls: batch_all::Calls, } @@ -16638,7 +18381,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dispatch_as`]."] + #[doc = "Dispatches a function call with a provided origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct DispatchAs { pub as_origin: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -16667,7 +18415,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = "Unlike `batch`, it allows errors and won't interrupt."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] pub struct ForceBatch { pub calls: force_batch::Calls, } @@ -16695,7 +18455,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::with_weight`]."] + #[doc = "Dispatch a function call with a specified weight."] + #[doc = ""] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Root origin to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] pub struct WithWeight { pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, pub weight: with_weight::Weight, @@ -16712,7 +18477,24 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + #[doc = ""] + #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"] + #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"] + #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"] + #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"] + #[doc = "event is deposited."] pub fn batch( &self, calls: types::batch::Calls, @@ -16723,14 +18505,25 @@ pub mod api { "batch", types::Batch { calls }, [ - 240u8, 229u8, 246u8, 172u8, 254u8, 190u8, 97u8, 110u8, 105u8, 221u8, - 115u8, 188u8, 52u8, 86u8, 113u8, 118u8, 146u8, 240u8, 235u8, 2u8, - 171u8, 219u8, 18u8, 212u8, 39u8, 217u8, 66u8, 80u8, 55u8, 148u8, 241u8, - 20u8, + 94u8, 129u8, 70u8, 92u8, 100u8, 48u8, 24u8, 199u8, 35u8, 142u8, 149u8, + 37u8, 51u8, 142u8, 10u8, 124u8, 248u8, 42u8, 36u8, 185u8, 22u8, 2u8, + 80u8, 185u8, 134u8, 70u8, 3u8, 77u8, 76u8, 95u8, 25u8, 148u8, ], ) } - #[doc = "See [`Pallet::as_derivative`]."] + #[doc = "Send a call through an indexed pseudonym of the sender."] + #[doc = ""] + #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"] + #[doc = "use the same filter as the origin of this call."] + #[doc = ""] + #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."] + #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"] + #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"] + #[doc = "in the Multisig pallet instead."] + #[doc = ""] + #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub fn as_derivative( &self, index: types::as_derivative::Index, @@ -16745,14 +18538,26 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 98u8, 181u8, 74u8, 231u8, 95u8, 220u8, 13u8, 120u8, 161u8, 144u8, - 254u8, 82u8, 141u8, 143u8, 226u8, 62u8, 106u8, 112u8, 179u8, 127u8, - 54u8, 43u8, 161u8, 255u8, 235u8, 22u8, 192u8, 236u8, 153u8, 67u8, 80u8, - 210u8, + 165u8, 61u8, 249u8, 239u8, 171u8, 210u8, 175u8, 114u8, 152u8, 55u8, + 71u8, 247u8, 143u8, 100u8, 34u8, 47u8, 103u8, 137u8, 240u8, 117u8, + 28u8, 52u8, 7u8, 86u8, 17u8, 131u8, 111u8, 47u8, 53u8, 131u8, 162u8, + 191u8, ], ) } - #[doc = "See [`Pallet::batch_all`]."] + #[doc = "Send a batch of dispatch calls and atomically execute them."] + #[doc = "The whole transaction will rollback and fail if any of the calls failed."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] pub fn batch_all( &self, calls: types::batch_all::Calls, @@ -16763,13 +18568,19 @@ pub mod api { "batch_all", types::BatchAll { calls }, [ - 61u8, 70u8, 75u8, 34u8, 128u8, 54u8, 146u8, 49u8, 207u8, 184u8, 143u8, - 45u8, 106u8, 74u8, 187u8, 49u8, 236u8, 184u8, 73u8, 134u8, 48u8, 157u8, - 214u8, 229u8, 131u8, 168u8, 86u8, 54u8, 193u8, 141u8, 99u8, 119u8, + 205u8, 0u8, 102u8, 235u8, 255u8, 118u8, 177u8, 183u8, 250u8, 249u8, + 157u8, 95u8, 136u8, 127u8, 208u8, 237u8, 199u8, 125u8, 81u8, 73u8, + 212u8, 48u8, 112u8, 150u8, 176u8, 110u8, 168u8, 8u8, 156u8, 161u8, + 47u8, 44u8, ], ) } - #[doc = "See [`Pallet::dispatch_as`]."] + #[doc = "Dispatches a function call with a provided origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn dispatch_as( &self, as_origin: types::dispatch_as::AsOrigin, @@ -16784,14 +18595,25 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 235u8, 229u8, 32u8, 93u8, 159u8, 163u8, 87u8, 10u8, 109u8, 88u8, 64u8, - 172u8, 102u8, 230u8, 117u8, 68u8, 177u8, 24u8, 48u8, 157u8, 77u8, - 110u8, 40u8, 186u8, 114u8, 14u8, 116u8, 208u8, 246u8, 14u8, 56u8, - 111u8, + 78u8, 199u8, 183u8, 166u8, 60u8, 213u8, 4u8, 78u8, 105u8, 173u8, 54u8, + 8u8, 189u8, 173u8, 32u8, 51u8, 47u8, 192u8, 99u8, 91u8, 116u8, 50u8, + 217u8, 195u8, 112u8, 80u8, 147u8, 214u8, 215u8, 105u8, 171u8, 129u8, ], ) } - #[doc = "See [`Pallet::force_batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = "Unlike `batch`, it allows errors and won't interrupt."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] pub fn force_batch( &self, calls: types::force_batch::Calls, @@ -16802,14 +18624,19 @@ pub mod api { "force_batch", types::ForceBatch { calls }, [ - 214u8, 240u8, 219u8, 153u8, 214u8, 181u8, 142u8, 224u8, 190u8, 86u8, - 225u8, 221u8, 211u8, 162u8, 32u8, 224u8, 8u8, 130u8, 242u8, 167u8, - 190u8, 123u8, 230u8, 44u8, 222u8, 177u8, 73u8, 154u8, 177u8, 226u8, - 112u8, 157u8, + 61u8, 104u8, 12u8, 124u8, 188u8, 239u8, 176u8, 172u8, 77u8, 185u8, + 242u8, 145u8, 95u8, 210u8, 85u8, 157u8, 113u8, 156u8, 105u8, 236u8, + 178u8, 69u8, 83u8, 115u8, 174u8, 9u8, 160u8, 0u8, 5u8, 216u8, 169u8, + 11u8, ], ) } - #[doc = "See [`Pallet::with_weight`]."] + #[doc = "Dispatch a function call with a specified weight."] + #[doc = ""] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Root origin to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] pub fn with_weight( &self, call: types::with_weight::Call, @@ -16824,10 +18651,10 @@ pub mod api { weight, }, [ - 73u8, 59u8, 91u8, 218u8, 154u8, 105u8, 247u8, 29u8, 131u8, 199u8, - 149u8, 245u8, 124u8, 16u8, 104u8, 150u8, 160u8, 196u8, 10u8, 26u8, - 205u8, 150u8, 76u8, 102u8, 246u8, 83u8, 131u8, 66u8, 235u8, 215u8, - 203u8, 214u8, + 12u8, 167u8, 181u8, 30u8, 158u8, 195u8, 12u8, 29u8, 145u8, 240u8, + 170u8, 31u8, 152u8, 163u8, 255u8, 89u8, 170u8, 91u8, 174u8, 185u8, + 67u8, 76u8, 134u8, 181u8, 99u8, 125u8, 190u8, 112u8, 144u8, 121u8, + 202u8, 193u8, ], ) } @@ -17007,7 +18834,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_registrar`]."] + #[doc = "Add a registrar to the system."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."] + #[doc = ""] + #[doc = "- `account`: the account of the registrar."] + #[doc = ""] + #[doc = "Emits `RegistrarAdded` if successful."] pub struct AddRegistrar { pub account: add_registrar::Account, } @@ -17036,13 +18869,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_identity`]."] + #[doc = "Set an account's identity information and reserve the appropriate deposit."] + #[doc = ""] + #[doc = "If the account already has identity information, the deposit is taken as part payment"] + #[doc = "for the new deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `info`: The identity information."] + #[doc = ""] + #[doc = "Emits `IdentitySet` if successful."] pub struct SetIdentity { pub info: ::subxt::ext::subxt_core::alloc::boxed::Box, } pub mod set_identity { use super::runtime_types; - pub type Info = runtime_types::pallet_identity::types::IdentityInfo; + pub type Info = runtime_types::pallet_identity::legacy::IdentityInfo; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetIdentity { const PALLET: &'static str = "Identity"; @@ -17062,7 +18904,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_subs`]."] + #[doc = "Set the sub-accounts of the sender."] + #[doc = ""] + #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"] + #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "- `subs`: The identity's (new) sub-accounts."] pub struct SetSubs { pub subs: set_subs::Subs, } @@ -17091,7 +18941,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::clear_identity`]."] + #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."] + #[doc = ""] + #[doc = "Payment: All reserved balances on the account are returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "Emits `IdentityCleared` if successful."] pub struct ClearIdentity; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClearIdentity { const PALLET: &'static str = "Identity"; @@ -17111,7 +18968,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::request_judgement`]."] + #[doc = "Request a judgement from a registrar."] + #[doc = ""] + #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"] + #[doc = "given."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."] + #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] + #[doc = ""] + #[doc = "```nocompile"] + #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "```"] + #[doc = ""] + #[doc = "Emits `JudgementRequested` if successful."] pub struct RequestJudgement { #[codec(compact)] pub reg_index: request_judgement::RegIndex, @@ -17141,7 +19013,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_request`]."] + #[doc = "Cancel a previous request."] + #[doc = ""] + #[doc = "Payment: A previously reserved deposit is returned on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."] + #[doc = ""] + #[doc = "Emits `JudgementUnrequested` if successful."] pub struct CancelRequest { pub reg_index: cancel_request::RegIndex, } @@ -17167,7 +19048,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_fee`]."] + #[doc = "Set the fee required for a judgement to be requested from a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fee`: the new fee."] pub struct SetFee { #[codec(compact)] pub index: set_fee::Index, @@ -17197,7 +19084,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_account_id`]."] + #[doc = "Change the account associated with a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `new`: the new account ID."] pub struct SetAccountId { #[codec(compact)] pub index: set_account_id::Index, @@ -17229,7 +19122,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_fields`]."] + #[doc = "Set the field information for a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fields`: the fields that the registrar concerns themselves with."] pub struct SetFields { #[codec(compact)] pub index: set_fields::Index, @@ -17238,9 +19137,7 @@ pub mod api { pub mod set_fields { use super::runtime_types; pub type Index = ::core::primitive::u32; - pub type Fields = runtime_types::pallet_identity::types::BitFlags< - runtime_types::pallet_identity::types::IdentityField, - >; + pub type Fields = ::core::primitive::u64; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetFields { const PALLET: &'static str = "Identity"; @@ -17260,7 +19157,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::provide_judgement`]."] + #[doc = "Provide a judgement for an account's identity."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `reg_index`."] + #[doc = ""] + #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."] + #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"] + #[doc = " provided."] + #[doc = ""] + #[doc = "Note: Judgements do not apply to a username."] + #[doc = ""] + #[doc = "Emits `JudgementGiven` if successful."] pub struct ProvideJudgement { #[codec(compact)] pub reg_index: provide_judgement::RegIndex, @@ -17297,7 +19208,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill_identity`]."] + #[doc = "Remove an account's identity and sub-account information and slash the deposits."] + #[doc = ""] + #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"] + #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"] + #[doc = "manually using `cancel_request`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] + #[doc = ""] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = ""] + #[doc = "Emits `IdentityKilled` if successful."] pub struct KillIdentity { pub target: kill_identity::Target, } @@ -17326,7 +19248,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_sub`]."] + #[doc = "Add the given account to the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub struct AddSub { pub sub: add_sub::Sub, pub data: add_sub::Data, @@ -17357,7 +19285,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::rename_sub`]."] + #[doc = "Alter the associated name of the given sub-account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub struct RenameSub { pub sub: rename_sub::Sub, pub data: rename_sub::Data, @@ -17388,7 +19319,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_sub`]."] + #[doc = "Remove the given account from the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub struct RemoveSub { pub sub: remove_sub::Sub, } @@ -17417,16 +19354,260 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::quit_sub`]."] + #[doc = "Remove the sender as a sub-account."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender (*not* the original depositor)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "super-identity."] + #[doc = ""] + #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"] + #[doc = "controller of an account is maliciously registered as a sub-account."] pub struct QuitSub; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for QuitSub { const PALLET: &'static str = "Identity"; const CALL: &'static str = "quit_sub"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] + #[doc = ""] + #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] + #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + 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::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type Suffix = + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; + pub type Allocation = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AddUsernameAuthority { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "add_username_authority"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Remove `authority` from the username authorities."] + pub struct RemoveUsernameAuthority { + pub authority: remove_username_authority::Authority, + } + pub mod remove_username_authority { + use super::runtime_types; + pub type Authority = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveUsernameAuthority { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_username_authority"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set the username for `who`. Must be called by a username authority."] + #[doc = ""] + #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "accept them later."] + #[doc = ""] + #[doc = "Usernames must:"] + #[doc = " - Only contain lowercase ASCII characters or digits."] + #[doc = " - When combined with the suffix of the issuing authority be _less than_ the"] + #[doc = " `MaxUsernameLength`."] + 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::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type Username = + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>; + pub type Signature = + ::core::option::Option; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetUsernameFor { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "set_username_for"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Accept a given username that an `authority` granted. The call must include the full"] + #[doc = "username, as in `username.suffix`."] + 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::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AcceptUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "accept_username"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Remove an expired username approval. The username was approved by an authority but never"] + #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"] + #[doc = "full username, as in `username.suffix`."] + 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::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveExpiredApproval { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_expired_approval"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set a given username as the primary. The username should include the suffix."] + 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::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetPrimaryUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "set_primary_username"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] + #[doc = "gets a username but then calls `clear_identity`."] + 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::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveDanglingUsername { + const PALLET: &'static str = "Identity"; + const CALL: &'static str = "remove_dangling_username"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::add_registrar`]."] + #[doc = "Add a registrar to the system."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."] + #[doc = ""] + #[doc = "- `account`: the account of the registrar."] + #[doc = ""] + #[doc = "Emits `RegistrarAdded` if successful."] pub fn add_registrar( &self, account: types::add_registrar::Account, @@ -17443,7 +19624,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_identity`]."] + #[doc = "Set an account's identity information and reserve the appropriate deposit."] + #[doc = ""] + #[doc = "If the account already has identity information, the deposit is taken as part payment"] + #[doc = "for the new deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `info`: The identity information."] + #[doc = ""] + #[doc = "Emits `IdentitySet` if successful."] pub fn set_identity( &self, info: types::set_identity::Info, @@ -17463,7 +19653,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_subs`]."] + #[doc = "Set the sub-accounts of the sender."] + #[doc = ""] + #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"] + #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "- `subs`: The identity's (new) sub-accounts."] pub fn set_subs( &self, subs: types::set_subs::Subs, @@ -17481,7 +19679,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::clear_identity`]."] + #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."] + #[doc = ""] + #[doc = "Payment: All reserved balances on the account are returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "Emits `IdentityCleared` if successful."] pub fn clear_identity( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -17498,7 +19703,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::request_judgement`]."] + #[doc = "Request a judgement from a registrar."] + #[doc = ""] + #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"] + #[doc = "given."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."] + #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] + #[doc = ""] + #[doc = "```nocompile"] + #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "```"] + #[doc = ""] + #[doc = "Emits `JudgementRequested` if successful."] pub fn request_judgement( &self, reg_index: types::request_judgement::RegIndex, @@ -17516,7 +19736,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_request`]."] + #[doc = "Cancel a previous request."] + #[doc = ""] + #[doc = "Payment: A previously reserved deposit is returned on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."] + #[doc = ""] + #[doc = "Emits `JudgementUnrequested` if successful."] pub fn cancel_request( &self, reg_index: types::cancel_request::RegIndex, @@ -17534,7 +19763,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_fee`]."] + #[doc = "Set the fee required for a judgement to be requested from a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fee`: the new fee."] pub fn set_fee( &self, index: types::set_fee::Index, @@ -17553,7 +19788,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_account_id`]."] + #[doc = "Change the account associated with a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `new`: the new account ID."] pub fn set_account_id( &self, index: types::set_account_id::Index, @@ -17572,7 +19813,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_fields`]."] + #[doc = "Set the field information for a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fields`: the fields that the registrar concerns themselves with."] pub fn set_fields( &self, index: types::set_fields::Index, @@ -17584,13 +19831,28 @@ pub mod api { "set_fields", types::SetFields { index, fields }, [ - 25u8, 129u8, 119u8, 232u8, 18u8, 32u8, 77u8, 23u8, 185u8, 56u8, 32u8, - 199u8, 74u8, 174u8, 104u8, 203u8, 171u8, 253u8, 19u8, 225u8, 101u8, - 239u8, 14u8, 242u8, 157u8, 51u8, 203u8, 74u8, 1u8, 65u8, 165u8, 205u8, + 75u8, 38u8, 58u8, 93u8, 92u8, 164u8, 146u8, 146u8, 183u8, 245u8, 135u8, + 235u8, 12u8, 148u8, 37u8, 193u8, 58u8, 66u8, 173u8, 223u8, 166u8, + 169u8, 54u8, 159u8, 141u8, 36u8, 25u8, 231u8, 190u8, 211u8, 254u8, + 38u8, ], ) } - #[doc = "See [`Pallet::provide_judgement`]."] + #[doc = "Provide a judgement for an account's identity."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `reg_index`."] + #[doc = ""] + #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."] + #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"] + #[doc = " provided."] + #[doc = ""] + #[doc = "Note: Judgements do not apply to a username."] + #[doc = ""] + #[doc = "Emits `JudgementGiven` if successful."] pub fn provide_judgement( &self, reg_index: types::provide_judgement::RegIndex, @@ -17616,7 +19878,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill_identity`]."] + #[doc = "Remove an account's identity and sub-account information and slash the deposits."] + #[doc = ""] + #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"] + #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"] + #[doc = "manually using `cancel_request`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] + #[doc = ""] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = ""] + #[doc = "Emits `IdentityKilled` if successful."] pub fn kill_identity( &self, target: types::kill_identity::Target, @@ -17634,7 +19907,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::add_sub`]."] + #[doc = "Add the given account to the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub fn add_sub( &self, sub: types::add_sub::Sub, @@ -17652,7 +19931,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::rename_sub`]."] + #[doc = "Alter the associated name of the given sub-account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub fn rename_sub( &self, sub: types::rename_sub::Sub, @@ -17671,7 +19953,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_sub`]."] + #[doc = "Remove the given account from the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] pub fn remove_sub( &self, sub: types::remove_sub::Sub, @@ -17688,7 +19976,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::quit_sub`]."] + #[doc = "Remove the sender as a sub-account."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender (*not* the original depositor)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "super-identity."] + #[doc = ""] + #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"] + #[doc = "controller of an account is maliciously registered as a sub-account."] pub fn quit_sub( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -17705,6 +20002,156 @@ pub mod api { ], ) } + #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] + #[doc = ""] + #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] + #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + 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::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Remove `authority` from the username authorities."] + pub fn remove_username_authority( + &self, + authority: types::remove_username_authority::Authority, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::RemoveUsernameAuthority, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Set the username for `who`. Must be called by a username authority."] + #[doc = ""] + #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "accept them later."] + #[doc = ""] + #[doc = "Usernames must:"] + #[doc = " - Only contain lowercase ASCII characters or digits."] + #[doc = " - When combined with the suffix of the issuing authority be _less than_ the"] + #[doc = " `MaxUsernameLength`."] + 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::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Identity", + "set_username_for", + types::SetUsernameFor { + who, + username, + signature, + }, + [ + 208u8, 124u8, 47u8, 129u8, 27u8, 182u8, 185u8, 76u8, 173u8, 187u8, + 193u8, 4u8, 252u8, 195u8, 204u8, 101u8, 233u8, 33u8, 62u8, 6u8, 50u8, + 20u8, 224u8, 26u8, 125u8, 192u8, 220u8, 56u8, 255u8, 249u8, 85u8, 50u8, + ], + ) + } + #[doc = "Accept a given username that an `authority` granted. The call must include the full"] + #[doc = "username, as in `username.suffix`."] + pub fn accept_username( + &self, + username: types::accept_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Remove an expired username approval. The username was approved by an authority but never"] + #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"] + #[doc = "full username, as in `username.suffix`."] + pub fn remove_expired_approval( + &self, + username: types::remove_expired_approval::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::RemoveExpiredApproval, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Set a given username as the primary. The username should include the suffix."] + pub fn set_primary_username( + &self, + username: types::set_primary_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Remove a username that corresponds to an account with no identity. Exists when a user"] + #[doc = "gets a username but then calls `clear_identity`."] + pub fn remove_dangling_username( + &self, + username: types::remove_dangling_username::Username, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::RemoveDanglingUsername, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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"] @@ -17954,6 +20401,179 @@ pub mod api { const PALLET: &'static str = "Identity"; const EVENT: &'static str = "SubIdentityRevoked"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for AuthorityAdded { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "AuthorityAdded"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for AuthorityRemoved { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "AuthorityRemoved"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameSet { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameSet"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + pub type Expiration = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for UsernameQueued { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "UsernameQueued"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for PreapprovalExpired { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "PreapprovalExpired"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for PrimaryUsernameSet { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "PrimaryUsernameSet"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for DanglingUsernameRemoved { + const PALLET: &'static str = "Identity"; + const EVENT: &'static str = "DanglingUsernameRemoved"; + } } pub mod storage { use super::runtime_types; @@ -17961,9 +20581,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, - >; + 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::BoundedVec2< + ::core::primitive::u8, + >, + >, + ); pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } pub mod super_of { @@ -17992,14 +20620,43 @@ pub mod api { runtime_types::pallet_identity::types::RegistrarInfo< ::core::primitive::u128, ::subxt::ext::subxt_core::utils::AccountId32, + ::core::primitive::u64, >, >, >; } + pub mod username_authorities { + use super::runtime_types; + pub type UsernameAuthorities = + runtime_types::pallet_identity::types::AuthorityProperties< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + >; + pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; + } + pub mod account_of_username { + use super::runtime_types; + pub type AccountOfUsername = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >; + } + pub mod pending_usernames { + use super::runtime_types; + pub type PendingUsernames = ( + ::subxt::ext::subxt_core::utils::AccountId32, + ::core::primitive::u32, + ); + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::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( @@ -18016,13 +20673,14 @@ pub mod api { "IdentityOf", (), [ - 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( @@ -18044,9 +20702,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, ], ) } @@ -18174,10 +20832,173 @@ pub mod api { "Registrars", (), [ - 207u8, 253u8, 229u8, 237u8, 228u8, 85u8, 173u8, 74u8, 164u8, 67u8, - 144u8, 144u8, 5u8, 242u8, 84u8, 187u8, 110u8, 181u8, 2u8, 162u8, 239u8, - 212u8, 72u8, 233u8, 160u8, 196u8, 121u8, 218u8, 100u8, 0u8, 219u8, - 181u8, + 167u8, 99u8, 159u8, 117u8, 103u8, 243u8, 208u8, 113u8, 57u8, 225u8, + 27u8, 25u8, 188u8, 120u8, 15u8, 40u8, 134u8, 169u8, 108u8, 134u8, 83u8, + 184u8, 223u8, 170u8, 194u8, 19u8, 168u8, 43u8, 119u8, 76u8, 94u8, + 154u8, + ], + ) + } + #[doc = " A map of the accounts who are authorized to grant usernames."] + pub fn username_authorities_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::username_authorities::UsernameAuthorities, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "UsernameAuthorities", + (), + [ + 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 ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::username_authorities::Param0, + >, + types::username_authorities::UsernameAuthorities, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "UsernameAuthorities", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _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::ext::subxt_core::storage::address::StaticAddress< + (), + types::account_of_username::AccountOfUsername, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "AccountOfUsername", + (), + [ + 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 ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::account_of_username::Param0, + >, + types::account_of_username::AccountOfUsername, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "AccountOfUsername", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _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::ext::subxt_core::storage::address::StaticAddress< + (), + types::pending_usernames::PendingUsernames, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "PendingUsernames", + (), + [ + 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 ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::pending_usernames::Param0, + >, + types::pending_usernames::PendingUsernames, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Identity", + "PendingUsernames", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _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, ], ) } @@ -18187,7 +21008,7 @@ pub mod api { 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::ext::subxt_core::constants::address::StaticAddress< @@ -18203,15 +21024,15 @@ pub mod api { ], ) } - #[doc = " The amount held on deposit per additional field for a registered identity."] - pub fn field_deposit( + #[doc = " The amount held on deposit per encoded byte for a registered identity."] + pub fn byte_deposit( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< ::core::primitive::u128, > { ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( "Identity", - "FieldDeposit", + "ByteDeposit", [ 84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8, 27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8, @@ -18254,25 +21075,7 @@ pub mod api { ], ) } - #[doc = " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O"] - #[doc = " required to access an identity, but can be pretty high."] - pub fn max_additional_fields( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Identity", - "MaxAdditionalFields", - [ - 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 = " Maxmimum number of registrars allowed in the system. Needed to bound the complexity"] + #[doc = " Maximum number of registrars allowed in the system. Needed to bound the complexity"] #[doc = " of, e.g., updating judgements."] pub fn max_registrars( &self, @@ -18290,6 +21093,57 @@ pub mod api { ], ) } + #[doc = " The number of blocks within which a username grant must be accepted."] + pub fn pending_username_expiration( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::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::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::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::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::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, + ], + ) + } } } } @@ -18320,7 +21174,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::bid`]."] + #[doc = "A user outside of the society can make a bid for entry."] + #[doc = ""] + #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"] + #[doc = "when the bid becomes a member, or if the bid calls `unbid`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."] pub struct Bid { pub value: bid::Value, } @@ -18346,7 +21208,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unbid`]."] + #[doc = "A bidder can remove their bid for entry into society."] + #[doc = "By doing so, they will have their candidate deposit returned or"] + #[doc = "they will unvouch their voucher."] + #[doc = ""] + #[doc = "Payment: The bid deposit is unreserved if the user made a bid."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."] pub struct Unbid; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Unbid { const PALLET: &'static str = "Society"; @@ -18366,7 +21234,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vouch`]."] + #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."] + #[doc = ""] + #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"] + #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"] + #[doc = "the suspension judgement origin, the member will be banned from vouching again."] + #[doc = ""] + #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"] + #[doc = "be paid as a portion of the reward the member will receive for joining the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The user who you would like to vouch for."] + #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"] + #[doc = "a member in the society."] + #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"] + #[doc = "the society. Tips larger than `value` will be saturated upon payout."] pub struct Vouch { pub who: vouch::Who, pub value: vouch::Value, @@ -18399,7 +21283,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unvouch`]."] + #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"] + #[doc = "only a bidder (and not a candidate)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."] pub struct Unvouch; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Unvouch { const PALLET: &'static str = "Society"; @@ -18419,7 +21309,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vote`]."] + #[doc = "As a member, vote on a candidate."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `candidate`: The candidate that the member would like to bid on."] + #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"] + #[doc = " rejected (`false`)."] pub struct Vote { pub candidate: vote::Candidate, pub approve: vote::Approve, @@ -18450,7 +21347,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::defender_vote`]."] + #[doc = "As a member, vote on the defender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `approve`: A boolean which says if the candidate should be"] + #[doc = "approved (`true`) or rejected (`false`)."] pub struct DefenderVote { pub approve: defender_vote::Approve, } @@ -18476,7 +21379,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::payout`]."] + #[doc = "Transfer the first matured payout for the sender and remove it from the records."] + #[doc = ""] + #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"] + #[doc = "payouts."] + #[doc = ""] + #[doc = "Payment: The member will receive a payment equal to their first matured"] + #[doc = "payout to their free balance."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member with"] + #[doc = "payouts remaining."] pub struct Payout; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Payout { const PALLET: &'static str = "Society"; @@ -18496,7 +21408,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::waive_repay`]."] + #[doc = "Repay the payment previously given to the member with the signed origin, remove any"] + #[doc = "pending payments, and elevate them from rank 0 to rank 1."] pub struct WaiveRepay { pub amount: waive_repay::Amount, } @@ -18522,7 +21435,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::found_society`]."] + #[doc = "Found the society."] + #[doc = ""] + #[doc = "This is done as a discrete action in order to allow for the"] + #[doc = "pallet to be included into a running chain and can only be done once."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `founder` - The first member and head of the newly founded society."] + #[doc = "- `max_members` - The initial max number of members for the society."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] + #[doc = "- `rules` - The rules of this society concerning membership."] + #[doc = ""] + #[doc = "Complexity: O(1)"] pub struct FoundSociety { pub founder: found_society::Founder, pub max_members: found_society::MaxMembers, @@ -18562,7 +21491,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Dissolve the society and remove all members."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"] + #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"] + #[doc = "member."] pub struct Dissolve; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Dissolve { const PALLET: &'static str = "Society"; @@ -18582,7 +21515,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::judge_suspended_member`]."] + #[doc = "Allow suspension judgement origin to make judgement on a suspended member."] + #[doc = ""] + #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"] + #[doc = "any of the existing storage items for that member."] + #[doc = ""] + #[doc = "If a suspended member is rejected, remove all associated storage items, including"] + #[doc = "their payouts, and remove any vouched bids they currently have."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed from the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended member to be judged."] + #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"] + #[doc = " (`true`) or rejects (`false`) a suspended member."] pub struct JudgeSuspendedMember { pub who: judge_suspended_member::Who, pub forgive: judge_suspended_member::Forgive, @@ -18613,7 +21559,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_parameters`]."] + #[doc = "Change the maximum number of members in society and the maximum number of new candidates"] + #[doc = "in a single intake period."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed by the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"] + #[doc = " than the current number of members."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] pub struct SetParameters { pub max_members: set_parameters::MaxMembers, pub max_intake: set_parameters::MaxIntake, @@ -18645,7 +21602,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::punish_skeptic`]."] + #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"] + #[doc = "candidate."] pub struct PunishSkeptic; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PunishSkeptic { const PALLET: &'static str = "Society"; @@ -18665,7 +21623,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the"] + #[doc = "the candidate, and only after the period for voting has ended."] pub struct ClaimMembership; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimMembership { const PALLET: &'static str = "Society"; @@ -18685,7 +21644,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::bestow_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"] + #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"] + #[doc = "clearly rejected."] pub struct BestowMembership { pub candidate: bestow_membership::Candidate, } @@ -18711,7 +21672,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kick_candidate`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"] + #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"] + #[doc = "have a clear approval."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] pub struct KickCandidate { pub candidate: kick_candidate::Candidate, } @@ -18737,7 +21702,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::resign_candidacy`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the candidate."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] pub struct ResignCandidacy; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ResignCandidacy { const PALLET: &'static str = "Society"; @@ -18757,7 +21724,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::drop_candidate`]."] + #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"] + #[doc = "signed origin but only at the end of the subsequent round and only for"] + #[doc = "a candidate with more rejections than approvals."] + #[doc = ""] + #[doc = "The bid deposit is lost and the voucher is banned."] pub struct DropCandidate { pub candidate: drop_candidate::Candidate, } @@ -18783,7 +21754,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cleanup_candidacy`]."] + #[doc = "Remove up to `max` stale votes for the given `candidate`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."] pub struct CleanupCandidacy { pub candidate: cleanup_candidacy::Candidate, pub max: cleanup_candidacy::Max, @@ -18811,7 +21784,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cleanup_challenge`]."] + #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the challenge round is ended."] pub struct CleanupChallenge { pub challenge_round: cleanup_challenge::ChallengeRound, pub max: cleanup_challenge::Max, @@ -18828,7 +21803,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::bid`]."] + #[doc = "A user outside of the society can make a bid for entry."] + #[doc = ""] + #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"] + #[doc = "when the bid becomes a member, or if the bid calls `unbid`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."] pub fn bid( &self, value: types::bid::Value, @@ -18845,7 +21828,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unbid`]."] + #[doc = "A bidder can remove their bid for entry into society."] + #[doc = "By doing so, they will have their candidate deposit returned or"] + #[doc = "they will unvouch their voucher."] + #[doc = ""] + #[doc = "Payment: The bid deposit is unreserved if the user made a bid."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."] pub fn unbid( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -18862,7 +21851,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vouch`]."] + #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."] + #[doc = ""] + #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"] + #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"] + #[doc = "the suspension judgement origin, the member will be banned from vouching again."] + #[doc = ""] + #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"] + #[doc = "be paid as a portion of the reward the member will receive for joining the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The user who you would like to vouch for."] + #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"] + #[doc = "a member in the society."] + #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"] + #[doc = "the society. Tips larger than `value` will be saturated upon payout."] pub fn vouch( &self, who: types::vouch::Who, @@ -18881,7 +21886,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unvouch`]."] + #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"] + #[doc = "only a bidder (and not a candidate)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."] pub fn unvouch( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -18898,7 +21909,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vote`]."] + #[doc = "As a member, vote on a candidate."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `candidate`: The candidate that the member would like to bid on."] + #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"] + #[doc = " rejected (`false`)."] pub fn vote( &self, candidate: types::vote::Candidate, @@ -18916,7 +21934,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::defender_vote`]."] + #[doc = "As a member, vote on the defender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `approve`: A boolean which says if the candidate should be"] + #[doc = "approved (`true`) or rejected (`false`)."] pub fn defender_vote( &self, approve: types::defender_vote::Approve, @@ -18934,7 +21958,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::payout`]."] + #[doc = "Transfer the first matured payout for the sender and remove it from the records."] + #[doc = ""] + #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"] + #[doc = "payouts."] + #[doc = ""] + #[doc = "Payment: The member will receive a payment equal to their first matured"] + #[doc = "payout to their free balance."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member with"] + #[doc = "payouts remaining."] pub fn payout( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -18950,7 +21983,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::waive_repay`]."] + #[doc = "Repay the payment previously given to the member with the signed origin, remove any"] + #[doc = "pending payments, and elevate them from rank 0 to rank 1."] pub fn waive_repay( &self, amount: types::waive_repay::Amount, @@ -18967,7 +22001,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::found_society`]."] + #[doc = "Found the society."] + #[doc = ""] + #[doc = "This is done as a discrete action in order to allow for the"] + #[doc = "pallet to be included into a running chain and can only be done once."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `founder` - The first member and head of the newly founded society."] + #[doc = "- `max_members` - The initial max number of members for the society."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] + #[doc = "- `rules` - The rules of this society concerning membership."] + #[doc = ""] + #[doc = "Complexity: O(1)"] pub fn found_society( &self, founder: types::found_society::Founder, @@ -18997,7 +22047,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Dissolve the society and remove all members."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"] + #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"] + #[doc = "member."] pub fn dissolve( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -19014,7 +22068,20 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::judge_suspended_member`]."] + #[doc = "Allow suspension judgement origin to make judgement on a suspended member."] + #[doc = ""] + #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"] + #[doc = "any of the existing storage items for that member."] + #[doc = ""] + #[doc = "If a suspended member is rejected, remove all associated storage items, including"] + #[doc = "their payouts, and remove any vouched bids they currently have."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed from the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended member to be judged."] + #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"] + #[doc = " (`true`) or rejects (`false`) a suspended member."] pub fn judge_suspended_member( &self, who: types::judge_suspended_member::Who, @@ -19032,7 +22099,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_parameters`]."] + #[doc = "Change the maximum number of members in society and the maximum number of new candidates"] + #[doc = "in a single intake period."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed by the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"] + #[doc = " than the current number of members."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] pub fn set_parameters( &self, max_members: types::set_parameters::MaxMembers, @@ -19058,7 +22136,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::punish_skeptic`]."] + #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"] + #[doc = "candidate."] pub fn punish_skeptic( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -19075,7 +22154,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the"] + #[doc = "the candidate, and only after the period for voting has ended."] pub fn claim_membership( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -19091,7 +22171,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::bestow_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"] + #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"] + #[doc = "clearly rejected."] pub fn bestow_membership( &self, candidate: types::bestow_membership::Candidate, @@ -19108,7 +22190,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kick_candidate`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"] + #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"] + #[doc = "have a clear approval."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] pub fn kick_candidate( &self, candidate: types::kick_candidate::Candidate, @@ -19125,7 +22211,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::resign_candidacy`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the candidate."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] pub fn resign_candidacy( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -19142,7 +22230,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::drop_candidate`]."] + #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"] + #[doc = "signed origin but only at the end of the subsequent round and only for"] + #[doc = "a candidate with more rejections than approvals."] + #[doc = ""] + #[doc = "The bid deposit is lost and the voucher is banned."] pub fn drop_candidate( &self, candidate: types::drop_candidate::Candidate, @@ -19159,7 +22251,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cleanup_candidacy`]."] + #[doc = "Remove up to `max` stale votes for the given `candidate`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."] pub fn cleanup_candidacy( &self, candidate: types::cleanup_candidacy::Candidate, @@ -19178,7 +22272,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cleanup_challenge`]."] + #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the challenge round is ended."] pub fn cleanup_challenge( &self, challenge_round: types::cleanup_challenge::ChallengeRound, @@ -19694,7 +22790,7 @@ pub mod api { pub mod vote_clear_cursor { use super::runtime_types; pub type VoteClearCursor = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; @@ -20638,7 +23734,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::as_recovered`]."] + #[doc = "Send a call through a recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."] + #[doc = "- `call`: The call you want to make with the recovered account."] pub struct AsRecovered { pub account: as_recovered::Account, pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -20669,7 +23772,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_recovered`]."] + #[doc = "Allow ROOT to bypass the recovery process and set an a rescuer account"] + #[doc = "for a lost account directly."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The \"lost account\" to be recovered."] + #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."] pub struct SetRecovered { pub lost: set_recovered::Lost, pub rescuer: set_recovered::Rescuer, @@ -20703,7 +23813,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::create_recovery`]."] + #[doc = "Create a recovery configuration for your account. This makes your account recoverable."] + #[doc = ""] + #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"] + #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"] + #[doc = "in full when the user calls `remove_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"] + #[doc = " ordered and contain no duplicate values."] + #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"] + #[doc = " account can be recovered. Should be less than or equal to the length of the list of"] + #[doc = " friends."] + #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"] + #[doc = " needs to pass before the account can be recovered."] pub struct CreateRecovery { pub friends: create_recovery::Friends, pub threshold: create_recovery::Threshold, @@ -20735,7 +23860,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::initiate_recovery`]."] + #[doc = "Initiate the process for recovering a recoverable account."] + #[doc = ""] + #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"] + #[doc = "recovery process. This deposit will always be repatriated to the account"] + #[doc = "trying to be recovered. See `close_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to recover. This account needs to be"] + #[doc = " recoverable (i.e. have a recovery configuration)."] pub struct InitiateRecovery { pub account: initiate_recovery::Account, } @@ -20764,7 +23899,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vouch_recovery`]."] + #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"] + #[doc = "process for that account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""] + #[doc = "for the recoverable account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The lost account that you want to recover."] + #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."] + #[doc = ""] + #[doc = "The combination of these two parameters must point to an active recovery"] + #[doc = "process."] pub struct VouchRecovery { pub lost: vouch_recovery::Lost, pub rescuer: vouch_recovery::Rescuer, @@ -20798,7 +23944,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_recovery`]."] + #[doc = "Allow a successful rescuer to claim their recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""] + #[doc = "who has successfully completed the account recovery process: collected"] + #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"] + #[doc = " you."] pub struct ClaimRecovery { pub account: claim_recovery::Account, } @@ -20827,7 +23981,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::close_recovery`]."] + #[doc = "As the controller of a recoverable account, close an active recovery"] + #[doc = "process for your account."] + #[doc = ""] + #[doc = "Payment: By calling this function, the recoverable account will receive"] + #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account with an active recovery process for it."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `rescuer`: The account trying to rescue this recoverable account."] pub struct CloseRecovery { pub rescuer: close_recovery::Rescuer, } @@ -20856,7 +24020,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_recovery`]."] + #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."] + #[doc = ""] + #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"] + #[doc = "recovery attempts before calling this function else it will fail."] + #[doc = ""] + #[doc = "Payment: By calling this function the recoverable account will unreserve"] + #[doc = "their recovery configuration deposit."] + #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account (i.e. has a recovery configuration)."] pub struct RemoveRecovery; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveRecovery { const PALLET: &'static str = "Recovery"; @@ -20876,7 +24050,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_recovered`]."] + #[doc = "Cancel the ability to use `as_recovered` for `account`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you are able to call on-behalf-of."] pub struct CancelRecovered { pub account: cancel_recovered::Account, } @@ -20894,7 +24074,14 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::as_recovered`]."] + #[doc = "Send a call through a recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."] + #[doc = "- `call`: The call you want to make with the recovered account."] pub fn as_recovered( &self, account: types::as_recovered::Account, @@ -20909,14 +24096,20 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 132u8, 94u8, 18u8, 16u8, 239u8, 67u8, 148u8, 125u8, 211u8, 36u8, 235u8, - 248u8, 182u8, 156u8, 31u8, 86u8, 222u8, 157u8, 184u8, 224u8, 140u8, - 128u8, 168u8, 185u8, 169u8, 179u8, 67u8, 196u8, 157u8, 249u8, 228u8, - 33u8, + 82u8, 32u8, 246u8, 64u8, 159u8, 116u8, 57u8, 66u8, 134u8, 214u8, 105u8, + 73u8, 162u8, 229u8, 193u8, 29u8, 27u8, 153u8, 215u8, 216u8, 8u8, 38u8, + 51u8, 144u8, 184u8, 178u8, 147u8, 218u8, 33u8, 61u8, 98u8, 5u8, ], ) } - #[doc = "See [`Pallet::set_recovered`]."] + #[doc = "Allow ROOT to bypass the recovery process and set an a rescuer account"] + #[doc = "for a lost account directly."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The \"lost account\" to be recovered."] + #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."] pub fn set_recovered( &self, lost: types::set_recovered::Lost, @@ -20934,7 +24127,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::create_recovery`]."] + #[doc = "Create a recovery configuration for your account. This makes your account recoverable."] + #[doc = ""] + #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"] + #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"] + #[doc = "in full when the user calls `remove_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"] + #[doc = " ordered and contain no duplicate values."] + #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"] + #[doc = " account can be recovered. Should be less than or equal to the length of the list of"] + #[doc = " friends."] + #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"] + #[doc = " needs to pass before the account can be recovered."] pub fn create_recovery( &self, friends: types::create_recovery::Friends, @@ -20957,7 +24165,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::initiate_recovery`]."] + #[doc = "Initiate the process for recovering a recoverable account."] + #[doc = ""] + #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"] + #[doc = "recovery process. This deposit will always be repatriated to the account"] + #[doc = "trying to be recovered. See `close_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to recover. This account needs to be"] + #[doc = " recoverable (i.e. have a recovery configuration)."] pub fn initiate_recovery( &self, account: types::initiate_recovery::Account, @@ -20974,7 +24192,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vouch_recovery`]."] + #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"] + #[doc = "process for that account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""] + #[doc = "for the recoverable account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The lost account that you want to recover."] + #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."] + #[doc = ""] + #[doc = "The combination of these two parameters must point to an active recovery"] + #[doc = "process."] pub fn vouch_recovery( &self, lost: types::vouch_recovery::Lost, @@ -20992,7 +24221,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_recovery`]."] + #[doc = "Allow a successful rescuer to claim their recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""] + #[doc = "who has successfully completed the account recovery process: collected"] + #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"] + #[doc = " you."] pub fn claim_recovery( &self, account: types::claim_recovery::Account, @@ -21010,7 +24247,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::close_recovery`]."] + #[doc = "As the controller of a recoverable account, close an active recovery"] + #[doc = "process for your account."] + #[doc = ""] + #[doc = "Payment: By calling this function, the recoverable account will receive"] + #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account with an active recovery process for it."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `rescuer`: The account trying to rescue this recoverable account."] pub fn close_recovery( &self, rescuer: types::close_recovery::Rescuer, @@ -21028,7 +24275,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_recovery`]."] + #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."] + #[doc = ""] + #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"] + #[doc = "recovery attempts before calling this function else it will fail."] + #[doc = ""] + #[doc = "Payment: By calling this function the recoverable account will unreserve"] + #[doc = "their recovery configuration deposit."] + #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account (i.e. has a recovery configuration)."] pub fn remove_recovery( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -21045,7 +24302,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_recovered`]."] + #[doc = "Cancel the ability to use `as_recovered` for `account`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you are able to call on-behalf-of."] pub fn cancel_recovered( &self, account: types::cancel_recovered::Account, @@ -21560,7 +24823,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vest`]."] + #[doc = "Unlock any vested funds of the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct Vest; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Vest { const PALLET: &'static str = "Vesting"; @@ -21580,7 +24851,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vest_other`]."] + #[doc = "Unlock any vested funds of a `target` account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct VestOther { pub target: vest_other::Target, } @@ -21609,7 +24890,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::vested_transfer`]."] + #[doc = "Create a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account receiving the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct VestedTransfer { pub target: vested_transfer::Target, pub schedule: vested_transfer::Schedule, @@ -21643,7 +24936,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_vested_transfer`]."] + #[doc = "Force a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `source`: The account whose funds should be transferred."] + #[doc = "- `target`: The account that should be transferred the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub struct ForceVestedTransfer { pub source: force_vested_transfer::Source, pub target: force_vested_transfer::Target, @@ -21682,7 +24988,27 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::merge_schedules`]."] + #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"] + #[doc = "the highest possible start and end blocks. If both schedules have already started the"] + #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"] + #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"] + #[doc = "unmodified."] + #[doc = ""] + #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."] + #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."] + #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"] + #[doc = "and both will be removed."] + #[doc = ""] + #[doc = "Merged schedule attributes:"] + #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"] + #[doc = " current_block)`."] + #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."] + #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `schedule1_index`: index of the first schedule to merge."] + #[doc = "- `schedule2_index`: index of the second schedule to merge."] pub struct MergeSchedules { pub schedule1_index: merge_schedules::Schedule1Index, pub schedule2_index: merge_schedules::Schedule2Index, @@ -21696,10 +25022,54 @@ pub mod api { const PALLET: &'static str = "Vesting"; const CALL: &'static str = "merge_schedules"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Force remove a vesting schedule"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `target`: An account that has a vesting schedule"] + #[doc = "- `schedule_index`: The vesting schedule index that should be removed"] + pub struct ForceRemoveVestingSchedule { + pub target: force_remove_vesting_schedule::Target, + pub schedule_index: force_remove_vesting_schedule::ScheduleIndex, + } + pub mod force_remove_vesting_schedule { + use super::runtime_types; + pub type Target = ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >; + pub type ScheduleIndex = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceRemoveVestingSchedule { + const PALLET: &'static str = "Vesting"; + const CALL: &'static str = "force_remove_vesting_schedule"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::vest`]."] + #[doc = "Unlock any vested funds of the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn vest( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -21716,7 +25086,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vest_other`]."] + #[doc = "Unlock any vested funds of a `target` account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn vest_other( &self, target: types::vest_other::Target, @@ -21733,7 +25113,19 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::vested_transfer`]."] + #[doc = "Create a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account receiving the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn vested_transfer( &self, target: types::vested_transfer::Target, @@ -21751,7 +25143,20 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_vested_transfer`]."] + #[doc = "Force a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `source`: The account whose funds should be transferred."] + #[doc = "- `target`: The account that should be transferred the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] pub fn force_vested_transfer( &self, source: types::force_vested_transfer::Source, @@ -21775,7 +25180,27 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::merge_schedules`]."] + #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"] + #[doc = "the highest possible start and end blocks. If both schedules have already started the"] + #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"] + #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"] + #[doc = "unmodified."] + #[doc = ""] + #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."] + #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."] + #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"] + #[doc = "and both will be removed."] + #[doc = ""] + #[doc = "Merged schedule attributes:"] + #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"] + #[doc = " current_block)`."] + #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."] + #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `schedule1_index`: index of the first schedule to merge."] + #[doc = "- `schedule2_index`: index of the second schedule to merge."] pub fn merge_schedules( &self, schedule1_index: types::merge_schedules::Schedule1Index, @@ -21796,6 +25221,33 @@ pub mod api { ], ) } + #[doc = "Force remove a vesting schedule"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `target`: An account that has a vesting schedule"] + #[doc = "- `schedule_index`: The vesting schedule index that should be removed"] + pub fn force_remove_vesting_schedule( + &self, + target: types::force_remove_vesting_schedule::Target, + schedule_index: types::force_remove_vesting_schedule::ScheduleIndex, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ForceRemoveVestingSchedule, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Vesting", + "force_remove_vesting_schedule", + types::ForceRemoveVestingSchedule { + target, + schedule_index, + }, + [ + 211u8, 253u8, 60u8, 15u8, 20u8, 53u8, 23u8, 13u8, 45u8, 223u8, 136u8, + 183u8, 162u8, 143u8, 196u8, 188u8, 35u8, 64u8, 174u8, 16u8, 47u8, 13u8, + 147u8, 173u8, 120u8, 143u8, 75u8, 89u8, 128u8, 187u8, 9u8, 18u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -22012,7 +25464,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule`]."] + #[doc = "Anonymously schedule a task."] pub struct Schedule { pub when: schedule::When, pub maybe_periodic: schedule::MaybePeriodic, @@ -22045,7 +25497,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an anonymously scheduled task."] pub struct Cancel { pub when: cancel::When, pub index: cancel::Index, @@ -22073,7 +25525,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule_named`]."] + #[doc = "Schedule a named task."] pub struct ScheduleNamed { pub id: schedule_named::Id, pub when: schedule_named::When, @@ -22108,7 +25560,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_named`]."] + #[doc = "Cancel a named scheduled task."] pub struct CancelNamed { pub id: cancel_named::Id, } @@ -22134,7 +25586,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule_after`]."] + #[doc = "Anonymously schedule a task after a delay."] pub struct ScheduleAfter { pub after: schedule_after::After, pub maybe_periodic: schedule_after::MaybePeriodic, @@ -22167,7 +25619,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule_named_after`]."] + #[doc = "Schedule a named task after a delay."] pub struct ScheduleNamedAfter { pub id: schedule_named_after::Id, pub after: schedule_named_after::After, @@ -22189,10 +25641,144 @@ pub mod api { const PALLET: &'static str = "Scheduler"; const CALL: &'static str = "schedule_named_after"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"] + #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"] + #[doc = "succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + pub struct SetRetry { + pub task: set_retry::Task, + pub retries: set_retry::Retries, + pub period: set_retry::Period, + } + pub mod set_retry { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + pub type Retries = ::core::primitive::u8; + pub type Period = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetRetry { + const PALLET: &'static str = "Scheduler"; + const CALL: &'static str = "set_retry"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"] + #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"] + #[doc = "it succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + pub struct SetRetryNamed { + pub id: set_retry_named::Id, + pub retries: set_retry_named::Retries, + pub period: set_retry_named::Period, + } + pub mod set_retry_named { + use super::runtime_types; + pub type Id = [::core::primitive::u8; 32usize]; + pub type Retries = ::core::primitive::u8; + pub type Period = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetRetryNamed { + const PALLET: &'static str = "Scheduler"; + const CALL: &'static str = "set_retry_named"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Removes the retry configuration of a task."] + pub struct CancelRetry { + pub task: cancel_retry::Task, + } + pub mod cancel_retry { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelRetry { + const PALLET: &'static str = "Scheduler"; + const CALL: &'static str = "cancel_retry"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Cancel the retry configuration of a named task."] + pub struct CancelRetryNamed { + pub id: cancel_retry_named::Id, + } + pub mod cancel_retry_named { + use super::runtime_types; + pub type Id = [::core::primitive::u8; 32usize]; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelRetryNamed { + const PALLET: &'static str = "Scheduler"; + const CALL: &'static str = "cancel_retry_named"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::schedule`]."] + #[doc = "Anonymously schedule a task."] pub fn schedule( &self, when: types::schedule::When, @@ -22211,14 +25797,13 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 252u8, 254u8, 42u8, 224u8, 241u8, 137u8, 180u8, 193u8, 26u8, 146u8, - 35u8, 137u8, 255u8, 216u8, 163u8, 49u8, 213u8, 110u8, 57u8, 170u8, - 216u8, 56u8, 196u8, 95u8, 74u8, 66u8, 15u8, 209u8, 137u8, 34u8, 175u8, - 238u8, + 230u8, 211u8, 250u8, 199u8, 35u8, 211u8, 113u8, 186u8, 36u8, 37u8, + 253u8, 42u8, 173u8, 79u8, 57u8, 132u8, 1u8, 104u8, 3u8, 99u8, 218u8, + 42u8, 230u8, 198u8, 107u8, 145u8, 11u8, 78u8, 59u8, 103u8, 42u8, 78u8, ], ) } - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an anonymously scheduled task."] pub fn cancel( &self, when: types::cancel::When, @@ -22237,7 +25822,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::schedule_named`]."] + #[doc = "Schedule a named task."] pub fn schedule_named( &self, id: types::schedule_named::Id, @@ -22258,14 +25843,13 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 45u8, 36u8, 20u8, 248u8, 180u8, 54u8, 108u8, 243u8, 147u8, 74u8, 234u8, - 254u8, 138u8, 186u8, 88u8, 29u8, 195u8, 57u8, 197u8, 231u8, 174u8, - 141u8, 250u8, 76u8, 93u8, 53u8, 34u8, 247u8, 103u8, 138u8, 160u8, - 198u8, + 204u8, 94u8, 156u8, 9u8, 11u8, 54u8, 167u8, 16u8, 14u8, 204u8, 176u8, + 50u8, 252u8, 30u8, 138u8, 102u8, 129u8, 13u8, 9u8, 99u8, 71u8, 236u8, + 233u8, 34u8, 0u8, 226u8, 11u8, 107u8, 180u8, 15u8, 223u8, 67u8, ], ) } - #[doc = "See [`Pallet::cancel_named`]."] + #[doc = "Cancel a named scheduled task."] pub fn cancel_named( &self, id: types::cancel_named::Id, @@ -22282,7 +25866,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::schedule_after`]."] + #[doc = "Anonymously schedule a task after a delay."] pub fn schedule_after( &self, after: types::schedule_after::After, @@ -22301,13 +25885,13 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 161u8, 65u8, 247u8, 115u8, 13u8, 56u8, 115u8, 110u8, 92u8, 6u8, 119u8, - 247u8, 90u8, 174u8, 97u8, 217u8, 73u8, 49u8, 17u8, 2u8, 117u8, 225u8, - 251u8, 48u8, 148u8, 105u8, 136u8, 83u8, 65u8, 178u8, 65u8, 96u8, + 0u8, 19u8, 153u8, 176u8, 31u8, 175u8, 15u8, 125u8, 90u8, 49u8, 163u8, + 50u8, 170u8, 23u8, 147u8, 102u8, 19u8, 142u8, 240u8, 67u8, 103u8, + 189u8, 244u8, 21u8, 47u8, 190u8, 218u8, 117u8, 17u8, 26u8, 0u8, 149u8, ], ) } - #[doc = "See [`Pallet::schedule_named_after`]."] + #[doc = "Schedule a named task after a delay."] pub fn schedule_named_after( &self, id: types::schedule_named_after::Id, @@ -22328,9 +25912,114 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 215u8, 126u8, 151u8, 2u8, 165u8, 35u8, 101u8, 79u8, 101u8, 79u8, 27u8, - 17u8, 244u8, 244u8, 166u8, 173u8, 2u8, 26u8, 222u8, 154u8, 106u8, - 232u8, 202u8, 86u8, 226u8, 222u8, 9u8, 17u8, 221u8, 85u8, 85u8, 140u8, + 208u8, 211u8, 138u8, 209u8, 177u8, 180u8, 222u8, 100u8, 46u8, 196u8, + 79u8, 218u8, 166u8, 123u8, 128u8, 183u8, 109u8, 35u8, 138u8, 7u8, 56u8, + 143u8, 37u8, 172u8, 29u8, 57u8, 150u8, 144u8, 174u8, 129u8, 169u8, + 186u8, + ], + ) + } + #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"] + #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"] + #[doc = "succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + pub fn set_retry( + &self, + task: types::set_retry::Task, + retries: types::set_retry::Retries, + period: types::set_retry::Period, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Scheduler", + "set_retry", + types::SetRetry { + task, + retries, + period, + }, + [ + 2u8, 242u8, 180u8, 69u8, 237u8, 168u8, 243u8, 93u8, 47u8, 222u8, 189u8, + 74u8, 233u8, 106u8, 54u8, 40u8, 160u8, 61u8, 78u8, 138u8, 232u8, 20u8, + 243u8, 17u8, 151u8, 194u8, 67u8, 200u8, 186u8, 192u8, 210u8, 214u8, + ], + ) + } + #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"] + #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"] + #[doc = "it succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + pub fn set_retry_named( + &self, + id: types::set_retry_named::Id, + retries: types::set_retry_named::Retries, + period: types::set_retry_named::Period, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Scheduler", + "set_retry_named", + types::SetRetryNamed { + id, + retries, + period, + }, + [ + 240u8, 102u8, 255u8, 253u8, 52u8, 81u8, 164u8, 170u8, 184u8, 178u8, + 254u8, 126u8, 41u8, 247u8, 121u8, 22u8, 254u8, 136u8, 237u8, 37u8, + 11u8, 42u8, 227u8, 234u8, 132u8, 83u8, 109u8, 168u8, 31u8, 44u8, 231u8, + 70u8, + ], + ) + } + #[doc = "Removes the retry configuration of a task."] + pub fn cancel_retry( + &self, + task: types::cancel_retry::Task, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Scheduler", + "cancel_retry", + types::CancelRetry { task }, + [ + 142u8, 126u8, 127u8, 216u8, 64u8, 189u8, 42u8, 126u8, 63u8, 249u8, + 211u8, 202u8, 224u8, 197u8, 199u8, 240u8, 58u8, 94u8, 219u8, 177u8, + 20u8, 210u8, 153u8, 0u8, 127u8, 255u8, 235u8, 238u8, 170u8, 240u8, + 44u8, 49u8, + ], + ) + } + #[doc = "Cancel the retry configuration of a named task."] + pub fn cancel_retry_named( + &self, + id: types::cancel_retry_named::Id, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Scheduler", + "cancel_retry_named", + types::CancelRetryNamed { id }, + [ + 76u8, 157u8, 253u8, 113u8, 162u8, 54u8, 98u8, 21u8, 62u8, 44u8, 155u8, + 202u8, 2u8, 28u8, 153u8, 219u8, 67u8, 166u8, 206u8, 79u8, 139u8, 3u8, + 119u8, 182u8, 254u8, 134u8, 143u8, 121u8, 155u8, 220u8, 192u8, 209u8, ], ) } @@ -22425,6 +26114,58 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Set a retry configuration for some task."] + pub struct RetrySet { + pub task: retry_set::Task, + pub id: retry_set::Id, + pub period: retry_set::Period, + pub retries: retry_set::Retries, + } + pub mod retry_set { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>; + pub type Period = ::core::primitive::u32; + pub type Retries = ::core::primitive::u8; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for RetrySet { + const PALLET: &'static str = "Scheduler"; + const EVENT: &'static str = "RetrySet"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Cancel a retry configuration for some task."] + pub struct RetryCancelled { + pub task: retry_cancelled::Task, + pub id: retry_cancelled::Id, + } + pub mod retry_cancelled { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for RetryCancelled { + const PALLET: &'static str = "Scheduler"; + const EVENT: &'static str = "RetryCancelled"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The call for the provided hash was not found so the task has been aborted."] pub struct CallUnavailable { pub task: call_unavailable::Task, @@ -22473,6 +26214,31 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The given task was unable to be retried since the agenda is full at that block or there"] + #[doc = "was not enough weight to reschedule it."] + pub struct RetryFailed { + pub task: retry_failed::Task, + pub id: retry_failed::Id, + } + pub mod retry_failed { + use super::runtime_types; + pub type Task = (::core::primitive::u32, ::core::primitive::u32); + pub type Id = ::core::option::Option<[::core::primitive::u8; 32usize]>; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for RetryFailed { + const PALLET: &'static str = "Scheduler"; + const EVENT: &'static str = "RetryFailed"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The given task can never be executed since it is overweight."] pub struct PermanentlyOverweight { pub task: permanently_overweight::Task, @@ -22514,6 +26280,13 @@ pub mod api { >; pub type Param0 = ::core::primitive::u32; } + pub mod retries { + use super::runtime_types; + pub type Retries = + runtime_types::pallet_scheduler::RetryConfig<::core::primitive::u32>; + pub type Param0 = ::core::primitive::u32; + pub type Param1 = ::core::primitive::u32; + } pub mod lookup { use super::runtime_types; pub type Lookup = (::core::primitive::u32, ::core::primitive::u32); @@ -22557,9 +26330,9 @@ pub mod api { "Agenda", (), [ - 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, ], ) } @@ -22583,9 +26356,96 @@ 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, + ], + ) + } + #[doc = " Retry configurations for items to be executed, indexed by task address."] + pub fn retries_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::retries::Retries, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Scheduler", + "Retries", + (), + [ + 164u8, 27u8, 208u8, 185u8, 19u8, 232u8, 190u8, 97u8, 137u8, 73u8, + 146u8, 10u8, 241u8, 176u8, 251u8, 140u8, 133u8, 65u8, 190u8, 162u8, + 59u8, 32u8, 77u8, 201u8, 27u8, 78u8, 183u8, 164u8, 74u8, 46u8, 139u8, + 145u8, + ], + ) + } + #[doc = " Retry configurations for items to be executed, indexed by task address."] + pub fn retries_iter1( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::retries::Param0, + >, + types::retries::Retries, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Scheduler", + "Retries", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 164u8, 27u8, 208u8, 185u8, 19u8, 232u8, 190u8, 97u8, 137u8, 73u8, + 146u8, 10u8, 241u8, 176u8, 251u8, 140u8, 133u8, 65u8, 190u8, 162u8, + 59u8, 32u8, 77u8, 201u8, 27u8, 78u8, 183u8, 164u8, 74u8, 46u8, 139u8, + 145u8, + ], + ) + } + #[doc = " Retry configurations for items to be executed, indexed by task address."] + pub fn retries( + &self, + _0: impl ::core::borrow::Borrow, + _1: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ( + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::retries::Param0, + >, + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::retries::Param1, + >, + ), + types::retries::Retries, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Scheduler", + "Retries", + ( + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _1.borrow(), + ), + ), + [ + 164u8, 27u8, 208u8, 185u8, 19u8, 232u8, 190u8, 97u8, 137u8, 73u8, + 146u8, 10u8, 241u8, 176u8, 251u8, 140u8, 133u8, 65u8, 190u8, 162u8, + 59u8, 32u8, 77u8, 201u8, 27u8, 78u8, 183u8, 164u8, 74u8, 46u8, 139u8, + 145u8, ], ) } @@ -22716,7 +26576,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::proxy`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] pub struct Proxy { pub real: proxy::Real, pub force_proxy_type: proxy::ForceProxyType, @@ -22750,7 +26618,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_proxy`]."] + #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."] + #[doc = "- `proxy_type`: The permissions allowed for this proxy account."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] pub struct AddProxy { pub delegate: add_proxy::Delegate, pub proxy_type: add_proxy::ProxyType, @@ -22783,7 +26659,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_proxy`]."] + #[doc = "Unregister a proxy account for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."] + #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."] pub struct RemoveProxy { pub delegate: remove_proxy::Delegate, pub proxy_type: remove_proxy::ProxyType, @@ -22816,7 +26698,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_proxies`]."] + #[doc = "Unregister all proxy accounts for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "WARNING: This may be called on accounts created by `pure`, however if done, then"] + #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"] pub struct RemoveProxies; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveProxies { const PALLET: &'static str = "Proxy"; @@ -22836,7 +26723,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::create_pure`]."] + #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"] + #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."] + #[doc = ""] + #[doc = "Requires a `Signed` origin."] + #[doc = ""] + #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"] + #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"] + #[doc = "allow for maximum flexibility."] + #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"] + #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"] + #[doc = "want to use `0`."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + #[doc = ""] + #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"] + #[doc = "same sender, with the same parameters."] + #[doc = ""] + #[doc = "Fails if there are insufficient funds to pay for deposit."] pub struct CreatePure { pub proxy_type: create_pure::ProxyType, pub delay: create_pure::Delay, @@ -22866,7 +26770,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::kill_pure`]."] + #[doc = "Removes a previously spawned pure proxy."] + #[doc = ""] + #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"] + #[doc = "inaccessible."] + #[doc = ""] + #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"] + #[doc = "`pure` with corresponding parameters."] + #[doc = ""] + #[doc = "- `spawner`: The account that originally called `pure` to create this account."] + #[doc = "- `index`: The disambiguation index originally passed to `pure`. Probably `0`."] + #[doc = "- `proxy_type`: The proxy type originally passed to `pure`."] + #[doc = "- `height`: The height of the chain when the call to `pure` was processed."] + #[doc = "- `ext_index`: The extrinsic index in which the call to `pure` was processed."] + #[doc = ""] + #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"] + #[doc = "account whose `pure` call has corresponding parameters."] pub struct KillPure { pub spawner: kill_pure::Spawner, pub proxy_type: kill_pure::ProxyType, @@ -22905,7 +26824,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::announce`]."] + #[doc = "Publish the hash of a proxy-call that will be made in the future."] + #[doc = ""] + #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"] + #[doc = "if the delay associated with the proxy relationship is greater than zero."] + #[doc = ""] + #[doc = "No more than `MaxPending` announcements may be made at any one time."] + #[doc = ""] + #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"] + #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] pub struct Announce { pub real: announce::Real, pub call_hash: announce::CallHash, @@ -22936,7 +26869,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_announcement`]."] + #[doc = "Remove a given announcement."] + #[doc = ""] + #[doc = "May be called by a proxy account to remove a call they previously announced and return"] + #[doc = "the deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] pub struct RemoveAnnouncement { pub real: remove_announcement::Real, pub call_hash: remove_announcement::CallHash, @@ -22967,7 +26909,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reject_announcement`]."] + #[doc = "Remove the given announcement of a delegate."] + #[doc = ""] + #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"] + #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `delegate`: The account that previously announced the call."] + #[doc = "- `call_hash`: The hash of the call to be made."] pub struct RejectAnnouncement { pub delegate: reject_announcement::Delegate, pub call_hash: reject_announcement::CallHash, @@ -22998,7 +26949,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::proxy_announced`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "Removes any corresponding announcement(s)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] pub struct ProxyAnnounced { pub delegate: proxy_announced::Delegate, pub real: proxy_announced::Real, @@ -23026,7 +26987,15 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::proxy`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] pub fn proxy( &self, real: types::proxy::Real, @@ -23043,13 +27012,22 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 98u8, 141u8, 93u8, 220u8, 59u8, 37u8, 195u8, 192u8, 188u8, 135u8, - 200u8, 219u8, 164u8, 53u8, 109u8, 30u8, 116u8, 248u8, 13u8, 14u8, 99u8, - 128u8, 30u8, 33u8, 242u8, 89u8, 73u8, 25u8, 198u8, 19u8, 252u8, 157u8, + 182u8, 194u8, 143u8, 163u8, 248u8, 84u8, 194u8, 49u8, 194u8, 245u8, + 168u8, 141u8, 153u8, 236u8, 87u8, 80u8, 71u8, 254u8, 82u8, 33u8, 156u8, + 43u8, 208u8, 209u8, 79u8, 196u8, 133u8, 232u8, 72u8, 120u8, 245u8, + 10u8, ], ) } - #[doc = "See [`Pallet::add_proxy`]."] + #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."] + #[doc = "- `proxy_type`: The permissions allowed for this proxy account."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] pub fn add_proxy( &self, delegate: types::add_proxy::Delegate, @@ -23073,7 +27051,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_proxy`]."] + #[doc = "Unregister a proxy account for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."] + #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."] pub fn remove_proxy( &self, delegate: types::remove_proxy::Delegate, @@ -23096,7 +27080,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_proxies`]."] + #[doc = "Unregister all proxy accounts for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "WARNING: This may be called on accounts created by `pure`, however if done, then"] + #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"] pub fn remove_proxies( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -23113,7 +27102,24 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::create_pure`]."] + #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"] + #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."] + #[doc = ""] + #[doc = "Requires a `Signed` origin."] + #[doc = ""] + #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"] + #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"] + #[doc = "allow for maximum flexibility."] + #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"] + #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"] + #[doc = "want to use `0`."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + #[doc = ""] + #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"] + #[doc = "same sender, with the same parameters."] + #[doc = ""] + #[doc = "Fails if there are insufficient funds to pay for deposit."] pub fn create_pure( &self, proxy_type: types::create_pure::ProxyType, @@ -23136,7 +27142,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::kill_pure`]."] + #[doc = "Removes a previously spawned pure proxy."] + #[doc = ""] + #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"] + #[doc = "inaccessible."] + #[doc = ""] + #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"] + #[doc = "`pure` with corresponding parameters."] + #[doc = ""] + #[doc = "- `spawner`: The account that originally called `pure` to create this account."] + #[doc = "- `index`: The disambiguation index originally passed to `pure`. Probably `0`."] + #[doc = "- `proxy_type`: The proxy type originally passed to `pure`."] + #[doc = "- `height`: The height of the chain when the call to `pure` was processed."] + #[doc = "- `ext_index`: The extrinsic index in which the call to `pure` was processed."] + #[doc = ""] + #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"] + #[doc = "account whose `pure` call has corresponding parameters."] pub fn kill_pure( &self, spawner: types::kill_pure::Spawner, @@ -23163,7 +27184,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::announce`]."] + #[doc = "Publish the hash of a proxy-call that will be made in the future."] + #[doc = ""] + #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"] + #[doc = "if the delay associated with the proxy relationship is greater than zero."] + #[doc = ""] + #[doc = "No more than `MaxPending` announcements may be made at any one time."] + #[doc = ""] + #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"] + #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] pub fn announce( &self, real: types::announce::Real, @@ -23182,7 +27217,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_announcement`]."] + #[doc = "Remove a given announcement."] + #[doc = ""] + #[doc = "May be called by a proxy account to remove a call they previously announced and return"] + #[doc = "the deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] pub fn remove_announcement( &self, real: types::remove_announcement::Real, @@ -23200,7 +27244,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::reject_announcement`]."] + #[doc = "Remove the given announcement of a delegate."] + #[doc = ""] + #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"] + #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `delegate`: The account that previously announced the call."] + #[doc = "- `call_hash`: The hash of the call to be made."] pub fn reject_announcement( &self, delegate: types::reject_announcement::Delegate, @@ -23221,7 +27274,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::proxy_announced`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "Removes any corresponding announcement(s)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] pub fn proxy_announced( &self, delegate: types::proxy_announced::Delegate, @@ -23240,9 +27303,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 26u8, 255u8, 179u8, 183u8, 103u8, 89u8, 89u8, 142u8, 60u8, 152u8, 25u8, - 111u8, 125u8, 218u8, 47u8, 141u8, 211u8, 194u8, 193u8, 46u8, 34u8, - 134u8, 79u8, 218u8, 94u8, 45u8, 203u8, 17u8, 82u8, 3u8, 49u8, 217u8, + 25u8, 26u8, 82u8, 194u8, 249u8, 106u8, 152u8, 31u8, 19u8, 159u8, 241u8, + 161u8, 224u8, 133u8, 54u8, 107u8, 62u8, 69u8, 19u8, 178u8, 189u8, + 150u8, 206u8, 94u8, 191u8, 231u8, 197u8, 69u8, 69u8, 217u8, 161u8, + 120u8, ], ) } @@ -23667,7 +27731,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::as_multi_threshold_1`]."] + #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"] + #[doc = "multi-signature, but do not participate in the approval process."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."] pub struct AsMultiThreshold1 { pub other_signatories: as_multi_threshold1::OtherSignatories, pub call: @@ -23698,7 +27773,45 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "If there are enough, then dispatch the call."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "NOTE: Unless this is the final approval, you will generally want to use"] + #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"] + #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"] + #[doc = "may be found in the deposited `MultisigExecuted` event."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S + Z + Call)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- The weight of the `call`."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] pub struct AsMulti { pub threshold: as_multi::Threshold, pub other_signatories: as_multi::OtherSignatories, @@ -23736,7 +27849,36 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::approve_as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] pub struct ApproveAsMulti { pub threshold: approve_as_multi::Threshold, pub other_signatories: approve_as_multi::OtherSignatories, @@ -23774,7 +27916,27 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_as_multi`]."] + #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"] + #[doc = "for this operation will be unreserved on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"] + #[doc = "transaction for this dispatch."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- One event."] + #[doc = "- I/O: 1 read `O(S)`, one remove."] + #[doc = "- Storage: removes one item."] pub struct CancelAsMulti { pub threshold: cancel_as_multi::Threshold, pub other_signatories: cancel_as_multi::OtherSignatories, @@ -23798,7 +27960,18 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::as_multi_threshold_1`]."] + #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"] + #[doc = "multi-signature, but do not participate in the approval process."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."] pub fn as_multi_threshold_1( &self, other_signatories: types::as_multi_threshold1::OtherSignatories, @@ -23813,14 +27986,51 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 193u8, 159u8, 235u8, 139u8, 215u8, 236u8, 234u8, 123u8, 30u8, 127u8, - 92u8, 58u8, 140u8, 165u8, 232u8, 42u8, 90u8, 11u8, 176u8, 101u8, 211u8, - 245u8, 255u8, 57u8, 203u8, 18u8, 250u8, 227u8, 188u8, 229u8, 241u8, - 230u8, + 96u8, 252u8, 222u8, 130u8, 89u8, 149u8, 67u8, 14u8, 80u8, 3u8, 201u8, + 180u8, 192u8, 123u8, 203u8, 147u8, 20u8, 142u8, 155u8, 222u8, 21u8, + 229u8, 125u8, 40u8, 56u8, 210u8, 99u8, 191u8, 41u8, 98u8, 185u8, 230u8, ], ) } - #[doc = "See [`Pallet::as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "If there are enough, then dispatch the call."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "NOTE: Unless this is the final approval, you will generally want to use"] + #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"] + #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"] + #[doc = "may be found in the deposited `MultisigExecuted` event."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S + Z + Call)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- The weight of the `call`."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] pub fn as_multi( &self, threshold: types::as_multi::Threshold, @@ -23841,14 +28051,43 @@ pub mod api { max_weight, }, [ - 101u8, 52u8, 26u8, 235u8, 226u8, 182u8, 13u8, 173u8, 150u8, 137u8, - 150u8, 147u8, 155u8, 127u8, 99u8, 254u8, 187u8, 27u8, 109u8, 227u8, - 158u8, 249u8, 19u8, 33u8, 216u8, 156u8, 223u8, 174u8, 89u8, 95u8, 91u8, - 208u8, + 135u8, 76u8, 112u8, 115u8, 139u8, 246u8, 96u8, 148u8, 172u8, 175u8, + 158u8, 62u8, 198u8, 222u8, 56u8, 158u8, 78u8, 190u8, 241u8, 153u8, + 238u8, 124u8, 77u8, 68u8, 84u8, 98u8, 39u8, 211u8, 117u8, 234u8, 166u8, + 193u8, ], ) } - #[doc = "See [`Pallet::approve_as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] pub fn approve_as_multi( &self, threshold: types::approve_as_multi::Threshold, @@ -23875,7 +28114,27 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_as_multi`]."] + #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"] + #[doc = "for this operation will be unreserved on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"] + #[doc = "transaction for this dispatch."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- One event."] + #[doc = "- I/O: 1 read `O(S)`, one remove."] + #[doc = "- Storage: removes one item."] pub fn cancel_as_multi( &self, threshold: types::cancel_as_multi::Threshold, @@ -24216,7 +28475,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::note_preimage`]."] + #[doc = "Register a preimage on-chain."] + #[doc = ""] + #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"] + #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."] pub struct NotePreimage { pub bytes: note_preimage::Bytes, } @@ -24243,7 +28505,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unnote_preimage`]."] + #[doc = "Clear an unrequested preimage from the runtime storage."] + #[doc = ""] + #[doc = "If `len` is provided, then it will be a much cheaper operation."] + #[doc = ""] + #[doc = "- `hash`: The hash of the preimage to be removed from the store."] + #[doc = "- `len`: The length of the preimage of `hash`."] pub struct UnnotePreimage { pub hash: unnote_preimage::Hash, } @@ -24269,7 +28536,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::request_preimage`]."] + #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."] + #[doc = ""] + #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"] + #[doc = "a user may have paid, and take the control of the preimage out of their hands."] pub struct RequestPreimage { pub hash: request_preimage::Hash, } @@ -24295,7 +28565,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unrequest_preimage`]."] + #[doc = "Clear a previously made request for a preimage."] + #[doc = ""] + #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."] pub struct UnrequestPreimage { pub hash: unrequest_preimage::Hash, } @@ -24321,7 +28593,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::ensure_updated`]."] + #[doc = "Ensure that the a bulk of pre-images is upgraded."] + #[doc = ""] + #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."] pub struct EnsureUpdated { pub hashes: ensure_updated::Hashes, } @@ -24338,7 +28612,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::note_preimage`]."] + #[doc = "Register a preimage on-chain."] + #[doc = ""] + #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"] + #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."] pub fn note_preimage( &self, bytes: types::note_preimage::Bytes, @@ -24355,7 +28632,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unnote_preimage`]."] + #[doc = "Clear an unrequested preimage from the runtime storage."] + #[doc = ""] + #[doc = "If `len` is provided, then it will be a much cheaper operation."] + #[doc = ""] + #[doc = "- `hash`: The hash of the preimage to be removed from the store."] + #[doc = "- `len`: The length of the preimage of `hash`."] pub fn unnote_preimage( &self, hash: types::unnote_preimage::Hash, @@ -24373,7 +28655,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::request_preimage`]."] + #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."] + #[doc = ""] + #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"] + #[doc = "a user may have paid, and take the control of the preimage out of their hands."] pub fn request_preimage( &self, hash: types::request_preimage::Hash, @@ -24390,7 +28675,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unrequest_preimage`]."] + #[doc = "Clear a previously made request for a preimage."] + #[doc = ""] + #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."] pub fn unrequest_preimage( &self, hash: types::unrequest_preimage::Hash, @@ -24408,7 +28695,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::ensure_updated`]."] + #[doc = "Ensure that the a bulk of pre-images is upgraded."] + #[doc = ""] + #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."] pub fn ensure_updated( &self, hashes: types::ensure_updated::Hashes, @@ -24522,7 +28811,7 @@ pub mod api { pub mod preimage_for { use super::runtime_types; pub type PreimageFor = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::subxt::ext::subxt_core::utils::H256; @@ -24741,7 +29030,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::create`]."] + #[doc = "Initialize a conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub struct Create { pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box, pub rate: create::Rate, @@ -24770,7 +29062,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::update`]."] + #[doc = "Update the conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub struct Update { pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box, pub rate: update::Rate, @@ -24799,7 +29094,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove`]."] + #[doc = "Remove an existing conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub struct Remove { pub asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box, } @@ -24815,7 +29113,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::create`]."] + #[doc = "Initialize a conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub fn create( &self, asset_kind: types::create::AssetKind, @@ -24832,14 +29133,16 @@ 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, ], ) } - #[doc = "See [`Pallet::update`]."] + #[doc = "Update the conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub fn update( &self, asset_kind: types::update::AssetKind, @@ -24856,14 +29159,16 @@ 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, ], ) } - #[doc = "See [`Pallet::remove`]."] + #[doc = "Remove an existing conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] pub fn remove( &self, asset_kind: types::remove::AssetKind, @@ -24878,10 +29183,10 @@ pub mod api { ), }, [ - 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, ], ) } @@ -24995,9 +29300,10 @@ pub mod api { "ConversionRateToNative", (), [ - 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, ], ) } @@ -25023,9 +29329,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, ], ) } @@ -25059,7 +29366,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::propose_bounty`]."] + #[doc = "Propose a new bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"] + #[doc = "or slashed when rejected."] + #[doc = ""] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = "- `value`: The total payment amount of this bounty, curator fee included."] + #[doc = "- `description`: The description of this bounty."] pub struct ProposeBounty { #[codec(compact)] pub value: propose_bounty::Value, @@ -25089,7 +29407,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::approve_bounty`]."] + #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct ApproveBounty { #[codec(compact)] pub bounty_id: approve_bounty::BountyId, @@ -25116,7 +29440,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose a curator to a funded bounty."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct ProposeCurator { #[codec(compact)] pub bounty_id: propose_curator::BountyId, @@ -25151,7 +29480,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a bounty."] + #[doc = ""] + #[doc = "This function can only be called by the `RejectOrigin` a signed origin."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"] + #[doc = "malicious or inactive. As a result, we will slash the curator when possible."] + #[doc = ""] + #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"] + #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"] + #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"] + #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"] + #[doc = "we should pick a new curator. In this case the curator should also be slashed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct UnassignCurator { #[codec(compact)] pub bounty_id: unassign_curator::BountyId, @@ -25178,7 +29523,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for a bounty."] + #[doc = "A deposit will be reserved from curator and refund upon successful payout."] + #[doc = ""] + #[doc = "May only be called from the curator."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct AcceptCurator { #[codec(compact)] pub bounty_id: accept_curator::BountyId, @@ -25205,7 +29556,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::award_bounty`]."] + #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"] + #[doc = "after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to award."] + #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct AwardBounty { #[codec(compact)] pub bounty_id: award_bounty::BountyId, @@ -25237,7 +29597,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_bounty`]."] + #[doc = "Claim the payout from an awarded bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to claim."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct ClaimBounty { #[codec(compact)] pub bounty_id: claim_bounty::BountyId, @@ -25264,7 +29631,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::close_bounty`]."] + #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"] + #[doc = "the curator deposit will be unreserved if possible."] + #[doc = ""] + #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to cancel."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct CloseBounty { #[codec(compact)] pub bounty_id: close_bounty::BountyId, @@ -25291,7 +29666,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::extend_bounty_expiry`]."] + #[doc = "Extend the expiry time of an active bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to extend."] + #[doc = "- `remark`: additional information."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub struct ExtendBountyExpiry { #[codec(compact)] pub bounty_id: extend_bounty_expiry::BountyId, @@ -25310,7 +29693,18 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::propose_bounty`]."] + #[doc = "Propose a new bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"] + #[doc = "or slashed when rejected."] + #[doc = ""] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = "- `value`: The total payment amount of this bounty, curator fee included."] + #[doc = "- `description`: The description of this bounty."] pub fn propose_bounty( &self, value: types::propose_bounty::Value, @@ -25328,7 +29722,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::approve_bounty`]."] + #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn approve_bounty( &self, bounty_id: types::approve_bounty::BountyId, @@ -25346,7 +29746,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose a curator to a funded bounty."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn propose_curator( &self, bounty_id: types::propose_curator::BountyId, @@ -25369,7 +29774,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a bounty."] + #[doc = ""] + #[doc = "This function can only be called by the `RejectOrigin` a signed origin."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"] + #[doc = "malicious or inactive. As a result, we will slash the curator when possible."] + #[doc = ""] + #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"] + #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"] + #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"] + #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"] + #[doc = "we should pick a new curator. In this case the curator should also be slashed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn unassign_curator( &self, bounty_id: types::unassign_curator::BountyId, @@ -25387,7 +29808,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for a bounty."] + #[doc = "A deposit will be reserved from curator and refund upon successful payout."] + #[doc = ""] + #[doc = "May only be called from the curator."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn accept_curator( &self, bounty_id: types::accept_curator::BountyId, @@ -25404,7 +29831,16 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::award_bounty`]."] + #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"] + #[doc = "after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to award."] + #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn award_bounty( &self, bounty_id: types::award_bounty::BountyId, @@ -25425,7 +29861,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_bounty`]."] + #[doc = "Claim the payout from an awarded bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to claim."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn claim_bounty( &self, bounty_id: types::claim_bounty::BountyId, @@ -25443,7 +29886,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::close_bounty`]."] + #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"] + #[doc = "the curator deposit will be unreserved if possible."] + #[doc = ""] + #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to cancel."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn close_bounty( &self, bounty_id: types::close_bounty::BountyId, @@ -25461,7 +29912,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::extend_bounty_expiry`]."] + #[doc = "Extend the expiry time of an active bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to extend."] + #[doc = "- `remark`: additional information."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] pub fn extend_bounty_expiry( &self, bounty_id: types::extend_bounty_expiry::BountyId, @@ -25761,7 +30220,7 @@ pub mod api { pub mod bounty_descriptions { use super::runtime_types; pub type BountyDescriptions = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -26105,7 +30564,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_child_bounty`]."] + #[doc = "Add a new child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of parent"] + #[doc = "bounty and the parent bounty must be in \"active\" state."] + #[doc = ""] + #[doc = "Child-bounty gets added successfully & fund gets transferred from"] + #[doc = "parent bounty to child-bounty account, if parent bounty has enough"] + #[doc = "funds, else the call fails."] + #[doc = ""] + #[doc = "Upper bound to maximum number of active child bounties that can be"] + #[doc = "added are managed via runtime trait config"] + #[doc = "[`Config::MaxActiveChildBountyCount`]."] + #[doc = ""] + #[doc = "If the call is success, the status of child-bounty is updated to"] + #[doc = "\"Added\"."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."] + #[doc = "- `value`: Value for executing the proposal."] + #[doc = "- `description`: Text description for the child-bounty."] pub struct AddChildBounty { #[codec(compact)] pub parent_bounty_id: add_child_bounty::ParentBountyId, @@ -26138,7 +30615,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose curator for funded child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be curator of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `curator`: Address of child-bounty curator."] + #[doc = "- `fee`: payment fee to child-bounty curator for execution."] pub struct ProposeCurator { #[codec(compact)] pub parent_bounty_id: propose_curator::ParentBountyId, @@ -26176,7 +30667,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for the child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this"] + #[doc = "child-bounty."] + #[doc = ""] + #[doc = "A deposit will be reserved from the curator and refund upon"] + #[doc = "successful payout or cancellation."] + #[doc = ""] + #[doc = "Fee for curator is deducted from curator fee of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"] + #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub struct AcceptCurator { #[codec(compact)] pub parent_bounty_id: accept_curator::ParentBountyId, @@ -26206,7 +30715,40 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"] + #[doc = "the curator of the parent bounty, or any signed origin."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin and the child-bounty"] + #[doc = "curator, parent bounty must be in active state, for this call to"] + #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"] + #[doc = "this call irrespective of the parent bounty state."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin` or the"] + #[doc = "parent bounty curator, we assume that the child-bounty curator is"] + #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"] + #[doc = "slashed."] + #[doc = ""] + #[doc = "If the origin is the child-bounty curator, we take this as a sign"] + #[doc = "that they are unable to do their job, and are willingly giving up."] + #[doc = "We could slash the deposit, but for now we allow them to unreserve"] + #[doc = "their deposit and exit without issue. (We may want to change this if"] + #[doc = "it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"] + #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"] + #[doc = "inactive state of child-bounty curator."] + #[doc = ""] + #[doc = "This allows anyone in the community to call out that a child-bounty"] + #[doc = "curator is not doing their due diligence, and we should pick a new"] + #[doc = "one. In this case the child-bounty curator deposit is slashed."] + #[doc = ""] + #[doc = "State of child-bounty is moved to Added state on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub struct UnassignCurator { #[codec(compact)] pub parent_bounty_id: unassign_curator::ParentBountyId, @@ -26236,7 +30778,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::award_child_bounty`]."] + #[doc = "Award child-bounty to a beneficiary."] + #[doc = ""] + #[doc = "The beneficiary will be able to claim the funds after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the parent curator or"] + #[doc = "curator of this child-bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in active state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `beneficiary`: Beneficiary account."] pub struct AwardChildBounty { #[codec(compact)] pub parent_bounty_id: award_child_bounty::ParentBountyId, @@ -26271,7 +30829,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::claim_child_bounty`]."] + #[doc = "Claim the payout from an awarded child-bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call may be any signed origin."] + #[doc = ""] + #[doc = "Call works independent of parent bounty state, No need for parent"] + #[doc = "bounty to be in active state."] + #[doc = ""] + #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"] + #[doc = "paid & curator deposit is unreserved."] + #[doc = ""] + #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"] + #[doc = "call. And instance of child-bounty is removed from the state on"] + #[doc = "successful call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub struct ClaimChildBounty { #[codec(compact)] pub parent_bounty_id: claim_child_bounty::ParentBountyId, @@ -26301,7 +30874,28 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::close_child_bounty`]."] + #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"] + #[doc = "are transferred to parent bounty account. The child-bounty curator"] + #[doc = "deposit may be unreserved if possible."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be either parent curator or"] + #[doc = "`T::RejectOrigin`."] + #[doc = ""] + #[doc = "If the state of child-bounty is `Active`, curator deposit is"] + #[doc = "unreserved."] + #[doc = ""] + #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"] + #[doc = "returns `PendingPayout` error."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"] + #[doc = "active state, for this child-bounty call to work. For origin"] + #[doc = "T::RejectOrigin execution is forced."] + #[doc = ""] + #[doc = "Instance of child-bounty is removed from the state on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub struct CloseChildBounty { #[codec(compact)] pub parent_bounty_id: close_child_bounty::ParentBountyId, @@ -26320,7 +30914,25 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::add_child_bounty`]."] + #[doc = "Add a new child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of parent"] + #[doc = "bounty and the parent bounty must be in \"active\" state."] + #[doc = ""] + #[doc = "Child-bounty gets added successfully & fund gets transferred from"] + #[doc = "parent bounty to child-bounty account, if parent bounty has enough"] + #[doc = "funds, else the call fails."] + #[doc = ""] + #[doc = "Upper bound to maximum number of active child bounties that can be"] + #[doc = "added are managed via runtime trait config"] + #[doc = "[`Config::MaxActiveChildBountyCount`]."] + #[doc = ""] + #[doc = "If the call is success, the status of child-bounty is updated to"] + #[doc = "\"Added\"."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."] + #[doc = "- `value`: Value for executing the proposal."] + #[doc = "- `description`: Text description for the child-bounty."] pub fn add_child_bounty( &self, parent_bounty_id: types::add_child_bounty::ParentBountyId, @@ -26344,7 +30956,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose curator for funded child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be curator of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `curator`: Address of child-bounty curator."] + #[doc = "- `fee`: payment fee to child-bounty curator for execution."] pub fn propose_curator( &self, parent_bounty_id: types::propose_curator::ParentBountyId, @@ -26369,7 +30995,25 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for the child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this"] + #[doc = "child-bounty."] + #[doc = ""] + #[doc = "A deposit will be reserved from the curator and refund upon"] + #[doc = "successful payout or cancellation."] + #[doc = ""] + #[doc = "Fee for curator is deducted from curator fee of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"] + #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub fn accept_curator( &self, parent_bounty_id: types::accept_curator::ParentBountyId, @@ -26391,7 +31035,40 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"] + #[doc = "the curator of the parent bounty, or any signed origin."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin and the child-bounty"] + #[doc = "curator, parent bounty must be in active state, for this call to"] + #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"] + #[doc = "this call irrespective of the parent bounty state."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin` or the"] + #[doc = "parent bounty curator, we assume that the child-bounty curator is"] + #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"] + #[doc = "slashed."] + #[doc = ""] + #[doc = "If the origin is the child-bounty curator, we take this as a sign"] + #[doc = "that they are unable to do their job, and are willingly giving up."] + #[doc = "We could slash the deposit, but for now we allow them to unreserve"] + #[doc = "their deposit and exit without issue. (We may want to change this if"] + #[doc = "it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"] + #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"] + #[doc = "inactive state of child-bounty curator."] + #[doc = ""] + #[doc = "This allows anyone in the community to call out that a child-bounty"] + #[doc = "curator is not doing their due diligence, and we should pick a new"] + #[doc = "one. In this case the child-bounty curator deposit is slashed."] + #[doc = ""] + #[doc = "State of child-bounty is moved to Added state on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub fn unassign_curator( &self, parent_bounty_id: types::unassign_curator::ParentBountyId, @@ -26413,7 +31090,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::award_child_bounty`]."] + #[doc = "Award child-bounty to a beneficiary."] + #[doc = ""] + #[doc = "The beneficiary will be able to claim the funds after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the parent curator or"] + #[doc = "curator of this child-bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in active state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `beneficiary`: Beneficiary account."] pub fn award_child_bounty( &self, parent_bounty_id: types::award_child_bounty::ParentBountyId, @@ -26436,7 +31129,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::claim_child_bounty`]."] + #[doc = "Claim the payout from an awarded child-bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call may be any signed origin."] + #[doc = ""] + #[doc = "Call works independent of parent bounty state, No need for parent"] + #[doc = "bounty to be in active state."] + #[doc = ""] + #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"] + #[doc = "paid & curator deposit is unreserved."] + #[doc = ""] + #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"] + #[doc = "call. And instance of child-bounty is removed from the state on"] + #[doc = "successful call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub fn claim_child_bounty( &self, parent_bounty_id: types::claim_child_bounty::ParentBountyId, @@ -26457,7 +31165,28 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::close_child_bounty`]."] + #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"] + #[doc = "are transferred to parent bounty account. The child-bounty curator"] + #[doc = "deposit may be unreserved if possible."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be either parent curator or"] + #[doc = "`T::RejectOrigin`."] + #[doc = ""] + #[doc = "If the state of child-bounty is `Active`, curator deposit is"] + #[doc = "unreserved."] + #[doc = ""] + #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"] + #[doc = "returns `PendingPayout` error."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"] + #[doc = "active state, for this child-bounty call to work. For origin"] + #[doc = "T::RejectOrigin execution is forced."] + #[doc = ""] + #[doc = "Instance of child-bounty is removed from the state on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] pub fn close_child_bounty( &self, parent_bounty_id: types::close_child_bounty::ParentBountyId, @@ -26613,7 +31342,7 @@ pub mod api { pub mod child_bounty_descriptions { use super::runtime_types; pub type ChildBountyDescriptions = - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -26946,7 +31675,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_bid`]."] + #[doc = "Place a bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."] + #[doc = ""] + #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"] + #[doc = " consolidated, removed. Must be at least `MinBid`."] + #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"] + #[doc = " thawed. Must be greater than 1 and no more than `QueueCount`."] + #[doc = ""] + #[doc = "Complexities:"] + #[doc = "- `Queues[duration].len()` (just take max)."] pub struct PlaceBid { #[codec(compact)] pub amount: place_bid::Amount, @@ -26975,7 +31714,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::retract_bid`]."] + #[doc = "Retract a previously placed bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"] + #[doc = "of `amount` for `duration`."] + #[doc = ""] + #[doc = "- `amount`: The amount of the previous bid."] + #[doc = "- `duration`: The duration of the previous bid."] pub struct RetractBid { #[codec(compact)] pub amount: retract_bid::Amount, @@ -27004,7 +31749,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::fund_deficit`]."] + #[doc = "Ensure we have sufficient funding for all potential payouts."] + #[doc = ""] + #[doc = "- `origin`: Must be accepted by `FundOrigin`."] pub struct FundDeficit; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for FundDeficit { const PALLET: &'static str = "Nis"; @@ -27024,7 +31771,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::thaw_private`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"] + #[doc = " well as any fungible counterpart."] + #[doc = "- `index`: The index of the receipt."] + #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"] + #[doc = " `None`, then all of it should be."] pub struct ThawPrivate { #[codec(compact)] pub index: thaw_private::Index, @@ -27055,7 +31809,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::thaw_communal`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"] + #[doc = " for receipt `index`."] + #[doc = "- `index`: The index of the receipt."] pub struct ThawCommunal { #[codec(compact)] pub index: thaw_communal::Index, @@ -27082,7 +31841,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::communify`]."] + #[doc = "Make a private receipt communal and create fungible counterparts for its owner."] pub struct Communify { #[codec(compact)] pub index: communify::Index, @@ -27109,7 +31868,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::privatize`]."] + #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."] pub struct Privatize { #[codec(compact)] pub index: privatize::Index, @@ -27125,7 +31884,17 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::place_bid`]."] + #[doc = "Place a bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."] + #[doc = ""] + #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"] + #[doc = " consolidated, removed. Must be at least `MinBid`."] + #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"] + #[doc = " thawed. Must be greater than 1 and no more than `QueueCount`."] + #[doc = ""] + #[doc = "Complexities:"] + #[doc = "- `Queues[duration].len()` (just take max)."] pub fn place_bid( &self, amount: types::place_bid::Amount, @@ -27144,7 +31913,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::retract_bid`]."] + #[doc = "Retract a previously placed bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"] + #[doc = "of `amount` for `duration`."] + #[doc = ""] + #[doc = "- `amount`: The amount of the previous bid."] + #[doc = "- `duration`: The duration of the previous bid."] pub fn retract_bid( &self, amount: types::retract_bid::Amount, @@ -27162,7 +31937,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::fund_deficit`]."] + #[doc = "Ensure we have sufficient funding for all potential payouts."] + #[doc = ""] + #[doc = "- `origin`: Must be accepted by `FundOrigin`."] pub fn fund_deficit( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -27179,7 +31956,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::thaw_private`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"] + #[doc = " well as any fungible counterpart."] + #[doc = "- `index`: The index of the receipt."] + #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"] + #[doc = " `None`, then all of it should be."] pub fn thaw_private( &self, index: types::thaw_private::Index, @@ -27200,7 +31984,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::thaw_communal`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"] + #[doc = " for receipt `index`."] + #[doc = "- `index`: The index of the receipt."] pub fn thaw_communal( &self, index: types::thaw_communal::Index, @@ -27218,7 +32007,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::communify`]."] + #[doc = "Make a private receipt communal and create fungible counterparts for its owner."] pub fn communify( &self, index: types::communify::Index, @@ -27236,7 +32025,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::privatize`]."] + #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."] pub fn privatize( &self, index: types::privatize::Index, @@ -27430,7 +32219,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "A receipt was transfered."] + #[doc = "A receipt was transferred."] pub struct Transferred { pub from: transferred::From, pub to: transferred::To, @@ -27853,7 +32642,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] pub struct TransferAllowDeath { pub dest: transfer_allow_death::Dest, #[codec(compact)] @@ -27885,7 +32680,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] pub struct ForceTransfer { pub source: force_transfer::Source, pub dest: force_transfer::Dest, @@ -27922,7 +32718,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] pub struct TransferKeepAlive { pub dest: transfer_keep_alive::Dest, #[codec(compact)] @@ -27954,7 +32755,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] pub struct TransferAll { pub dest: transfer_all::Dest, pub keep_alive: transfer_all::KeepAlive, @@ -27985,7 +32800,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] pub struct ForceUnreserve { pub who: force_unreserve::Who, pub amount: force_unreserve::Amount, @@ -28016,7 +32833,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] pub struct UpgradeAccounts { pub who: upgrade_accounts::Who, } @@ -28044,7 +32868,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] pub struct ForceSetBalance { pub who: force_set_balance::Who, #[codec(compact)] @@ -28062,10 +32888,84 @@ pub mod api { const PALLET: &'static str = "NisCounterpartBalances"; const CALL: &'static str = "force_set_balance"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + pub struct ForceAdjustTotalIssuance { + pub direction: force_adjust_total_issuance::Direction, + #[codec(compact)] + pub delta: force_adjust_total_issuance::Delta, + } + pub mod force_adjust_total_issuance { + use super::runtime_types; + pub type Direction = runtime_types::pallet_balances::types::AdjustmentDirection; + pub type Delta = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceAdjustTotalIssuance { + const PALLET: &'static str = "NisCounterpartBalances"; + const CALL: &'static str = "force_adjust_total_issuance"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Burn the specified liquid free balance from the origin account."] + #[doc = ""] + #[doc = "If the origin's account ends up below the existential deposit as a result"] + #[doc = "of the burn and `keep_alive` is false, the account will be reaped."] + #[doc = ""] + #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"] + #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."] + pub struct Burn { + #[codec(compact)] + pub value: burn::Value, + pub keep_alive: burn::KeepAlive, + } + pub mod burn { + use super::runtime_types; + pub type Value = ::core::primitive::u128; + pub type KeepAlive = ::core::primitive::bool; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Burn { + const PALLET: &'static str = "NisCounterpartBalances"; + const CALL: &'static str = "burn"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] pub fn transfer_allow_death( &self, dest: types::transfer_allow_death::Dest, @@ -28084,7 +32984,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] pub fn force_transfer( &self, source: types::force_transfer::Source, @@ -28107,7 +33008,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] pub fn transfer_keep_alive( &self, dest: types::transfer_keep_alive::Dest, @@ -28125,7 +33031,21 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] pub fn transfer_all( &self, dest: types::transfer_all::Dest, @@ -28143,7 +33063,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] pub fn force_unreserve( &self, who: types::force_unreserve::Who, @@ -28162,7 +33084,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] pub fn upgrade_accounts( &self, who: types::upgrade_accounts::Who, @@ -28179,7 +33108,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] pub fn force_set_balance( &self, who: types::force_set_balance::Who, @@ -28197,6 +33128,54 @@ pub mod api { ], ) } + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + pub fn force_adjust_total_issuance( + &self, + direction: types::force_adjust_total_issuance::Direction, + delta: types::force_adjust_total_issuance::Delta, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ForceAdjustTotalIssuance, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "NisCounterpartBalances", + "force_adjust_total_issuance", + types::ForceAdjustTotalIssuance { direction, delta }, + [ + 208u8, 134u8, 56u8, 133u8, 232u8, 164u8, 10u8, 213u8, 53u8, 193u8, + 190u8, 63u8, 236u8, 186u8, 96u8, 122u8, 104u8, 87u8, 173u8, 38u8, 58u8, + 176u8, 21u8, 78u8, 42u8, 106u8, 46u8, 248u8, 251u8, 190u8, 150u8, + 202u8, + ], + ) + } + #[doc = "Burn the specified liquid free balance from the origin account."] + #[doc = ""] + #[doc = "If the origin's account ends up below the existential deposit as a result"] + #[doc = "of the burn and `keep_alive` is false, the account will be reaped."] + #[doc = ""] + #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"] + #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."] + pub fn burn( + &self, + value: types::burn::Value, + keep_alive: types::burn::KeepAlive, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "NisCounterpartBalances", + "burn", + types::Burn { value, keep_alive }, + [ + 176u8, 64u8, 7u8, 109u8, 16u8, 44u8, 145u8, 125u8, 147u8, 152u8, 130u8, + 114u8, 221u8, 201u8, 150u8, 162u8, 118u8, 71u8, 52u8, 92u8, 240u8, + 116u8, 203u8, 98u8, 5u8, 22u8, 43u8, 102u8, 94u8, 208u8, 101u8, 57u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -28710,6 +33689,30 @@ pub mod api { const PALLET: &'static str = "NisCounterpartBalances"; const EVENT: &'static str = "Thawed"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The `TotalIssuance` was forcefully changed."] + pub struct TotalIssuanceForced { + pub old: total_issuance_forced::Old, + pub new: total_issuance_forced::New, + } + pub mod total_issuance_forced { + use super::runtime_types; + pub type Old = ::core::primitive::u128; + pub type New = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for TotalIssuanceForced { + const PALLET: &'static str = "NisCounterpartBalances"; + const EVENT: &'static str = "TotalIssuanceForced"; + } } pub mod storage { use super::runtime_types; @@ -28742,7 +33745,7 @@ pub mod api { pub mod reserves { use super::runtime_types; pub type Reserves = - runtime_types::bounded_collections::bounded_vec::BoundedVec8< + runtime_types::bounded_collections::bounded_vec::BoundedVec9< runtime_types::pallet_balances::types::ReserveData< [::core::primitive::u8; 8usize], ::core::primitive::u128, @@ -28752,7 +33755,7 @@ pub mod api { } pub mod holds { use super::runtime_types; - pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec9< + pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec10< runtime_types::pallet_balances::types::IdAmount< runtime_types::rococo_runtime::RuntimeHoldReason, ::core::primitive::u128, @@ -28763,7 +33766,7 @@ pub mod api { pub mod freezes { use super::runtime_types; pub type Freezes = - runtime_types::bounded_collections::bounded_vec::BoundedVec10< + runtime_types::bounded_collections::bounded_vec::BoundedVec11< runtime_types::pallet_balances::types::IdAmount< (), ::core::primitive::u128, @@ -28912,6 +33915,8 @@ pub mod api { } #[doc = " Any liquidity locks on some account balances."] #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn locks_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -28934,6 +33939,8 @@ pub mod api { } #[doc = " Any liquidity locks on some account balances."] #[doc = " NOTE: Should only be accessed when setting, changing and freeing a lock."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn locks( &self, _0: impl ::core::borrow::Borrow, @@ -28960,6 +33967,8 @@ pub mod api { ) } #[doc = " Named reserves on some account balances."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn reserves_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -28981,6 +33990,8 @@ pub mod api { ) } #[doc = " Named reserves on some account balances."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn reserves( &self, _0: impl ::core::borrow::Borrow, @@ -29021,10 +34032,10 @@ pub mod api { "Holds", (), [ - 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, ], ) } @@ -29048,10 +34059,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, ], ) } @@ -29133,6 +34144,8 @@ pub mod api { } #[doc = " The maximum number of locks that should exist on an account."] #[doc = " Not strictly enforced, but used for weight estimation."] + #[doc = ""] + #[doc = " Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn max_locks( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -29150,6 +34163,8 @@ pub mod api { ) } #[doc = " The maximum number of named reserves that can exist on an account."] + #[doc = ""] + #[doc = " Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/`"] pub fn max_reserves( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -29166,23 +34181,6 @@ pub mod api { ], ) } - #[doc = " The maximum number of holds that can exist on an account at any time."] - pub fn max_holds( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u32, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "NisCounterpartBalances", - "MaxHolds", - [ - 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 number of individual freeze locks that can exist on an account at any time."] pub fn max_freezes( &self, @@ -29234,7 +34232,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_validation_upgrade_cooldown`]."] + #[doc = "Set the validation upgrade cooldown."] pub struct SetValidationUpgradeCooldown { pub new: set_validation_upgrade_cooldown::New, } @@ -29260,7 +34258,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_validation_upgrade_delay`]."] + #[doc = "Set the validation upgrade delay."] pub struct SetValidationUpgradeDelay { pub new: set_validation_upgrade_delay::New, } @@ -29286,7 +34284,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_code_retention_period`]."] + #[doc = "Set the acceptance period for an included candidate."] pub struct SetCodeRetentionPeriod { pub new: set_code_retention_period::New, } @@ -29312,7 +34310,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_code_size`]."] + #[doc = "Set the max validation code size for incoming upgrades."] pub struct SetMaxCodeSize { pub new: set_max_code_size::New, } @@ -29338,7 +34336,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_pov_size`]."] + #[doc = "Set the max POV block size for incoming upgrades."] pub struct SetMaxPovSize { pub new: set_max_pov_size::New, } @@ -29364,7 +34362,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_head_data_size`]."] + #[doc = "Set the max head data size for paras."] pub struct SetMaxHeadDataSize { pub new: set_max_head_data_size::New, } @@ -29390,17 +34388,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_cores`]."] - pub struct SetOnDemandCores { - pub new: set_on_demand_cores::New, + #[doc = "Set the number of coretime execution cores."] + #[doc = ""] + #[doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"] + #[doc = "this, if you really know what you are doing!"] + 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::ext::subxt_core::blocks::StaticExtrinsic for SetOnDemandCores { + impl ::subxt::ext::subxt_core::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 :: subxt_core :: ext :: codec :: Decode, @@ -29416,17 +34417,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_retries`]."] - pub struct SetOnDemandRetries { - pub new: set_on_demand_retries::New, + #[doc = "Set the max number of times a claim may timeout on a core before it is abandoned"] + pub struct SetMaxAvailabilityTimeouts { + pub new: set_max_availability_timeouts::New, } - pub mod set_on_demand_retries { + pub mod set_max_availability_timeouts { use super::runtime_types; pub type New = ::core::primitive::u32; } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetOnDemandRetries { + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetMaxAvailabilityTimeouts { const PALLET: &'static str = "Configuration"; - const CALL: &'static str = "set_on_demand_retries"; + const CALL: &'static str = "set_max_availability_timeouts"; } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -29442,7 +34443,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_group_rotation_frequency`]."] + #[doc = "Set the parachain validator-group rotation frequency"] pub struct SetGroupRotationFrequency { pub new: set_group_rotation_frequency::New, } @@ -29468,7 +34469,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_paras_availability_period`]."] + #[doc = "Set the availability period for paras."] pub struct SetParasAvailabilityPeriod { pub new: set_paras_availability_period::New, } @@ -29494,7 +34495,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_scheduling_lookahead`]."] + #[doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."] pub struct SetSchedulingLookahead { pub new: set_scheduling_lookahead::New, } @@ -29520,7 +34521,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_validators_per_core`]."] + #[doc = "Set the maximum number of validators to assign to any core."] pub struct SetMaxValidatorsPerCore { pub new: set_max_validators_per_core::New, } @@ -29546,7 +34547,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_validators`]."] + #[doc = "Set the maximum number of validators to use in parachain consensus."] pub struct SetMaxValidators { pub new: set_max_validators::New, } @@ -29572,7 +34573,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_dispute_period`]."] + #[doc = "Set the dispute period, in number of sessions to keep for disputes."] pub struct SetDisputePeriod { pub new: set_dispute_period::New, } @@ -29598,7 +34599,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]."] + #[doc = "Set the dispute post conclusion acceptance period."] pub struct SetDisputePostConclusionAcceptancePeriod { pub new: set_dispute_post_conclusion_acceptance_period::New, } @@ -29626,7 +34627,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_no_show_slots`]."] + #[doc = "Set the no show slots, in number of number of consensus slots."] + #[doc = "Must be at least 1."] pub struct SetNoShowSlots { pub new: set_no_show_slots::New, } @@ -29652,7 +34654,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_n_delay_tranches`]."] + #[doc = "Set the total number of delay tranches."] pub struct SetNDelayTranches { pub new: set_n_delay_tranches::New, } @@ -29678,7 +34680,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_zeroth_delay_tranche_width`]."] + #[doc = "Set the zeroth delay tranche width."] pub struct SetZerothDelayTrancheWidth { pub new: set_zeroth_delay_tranche_width::New, } @@ -29704,7 +34706,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_needed_approvals`]."] + #[doc = "Set the number of validators needed to approve a block."] pub struct SetNeededApprovals { pub new: set_needed_approvals::New, } @@ -29730,7 +34732,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_relay_vrf_modulo_samples`]."] + #[doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."] pub struct SetRelayVrfModuloSamples { pub new: set_relay_vrf_modulo_samples::New, } @@ -29756,7 +34758,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_upward_queue_count`]."] + #[doc = "Sets the maximum items that can present in a upward dispatch queue at once."] pub struct SetMaxUpwardQueueCount { pub new: set_max_upward_queue_count::New, } @@ -29782,7 +34784,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_upward_queue_size`]."] + #[doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"] + #[doc = "once."] pub struct SetMaxUpwardQueueSize { pub new: set_max_upward_queue_size::New, } @@ -29808,7 +34811,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_downward_message_size`]."] + #[doc = "Set the critical downward message size."] pub struct SetMaxDownwardMessageSize { pub new: set_max_downward_message_size::New, } @@ -29834,7 +34837,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_upward_message_size`]."] + #[doc = "Sets the maximum size of an upward message that can be sent by a candidate."] pub struct SetMaxUpwardMessageSize { pub new: set_max_upward_message_size::New, } @@ -29860,7 +34863,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_upward_message_num_per_candidate`]."] + #[doc = "Sets the maximum number of messages that a candidate can contain."] pub struct SetMaxUpwardMessageNumPerCandidate { pub new: set_max_upward_message_num_per_candidate::New, } @@ -29886,7 +34889,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_open_request_ttl`]."] + #[doc = "Sets the number of sessions after which an HRMP open channel request expires."] pub struct SetHrmpOpenRequestTtl { pub new: set_hrmp_open_request_ttl::New, } @@ -29912,7 +34915,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_sender_deposit`]."] + #[doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."] pub struct SetHrmpSenderDeposit { pub new: set_hrmp_sender_deposit::New, } @@ -29938,7 +34941,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_recipient_deposit`]."] + #[doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"] + #[doc = "channel."] pub struct SetHrmpRecipientDeposit { pub new: set_hrmp_recipient_deposit::New, } @@ -29964,7 +34968,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_channel_max_capacity`]."] + #[doc = "Sets the maximum number of messages allowed in an HRMP channel at once."] pub struct SetHrmpChannelMaxCapacity { pub new: set_hrmp_channel_max_capacity::New, } @@ -29990,7 +34994,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_channel_max_total_size`]."] + #[doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."] pub struct SetHrmpChannelMaxTotalSize { pub new: set_hrmp_channel_max_total_size::New, } @@ -30016,7 +35020,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_max_parachain_inbound_channels`]."] + #[doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."] pub struct SetHrmpMaxParachainInboundChannels { pub new: set_hrmp_max_parachain_inbound_channels::New, } @@ -30042,7 +35046,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_channel_max_message_size`]."] + #[doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."] pub struct SetHrmpChannelMaxMessageSize { pub new: set_hrmp_channel_max_message_size::New, } @@ -30068,7 +35072,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_max_parachain_outbound_channels`]."] + #[doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."] pub struct SetHrmpMaxParachainOutboundChannels { pub new: set_hrmp_max_parachain_outbound_channels::New, } @@ -30094,7 +35098,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_hrmp_max_message_num_per_candidate`]."] + #[doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."] pub struct SetHrmpMaxMessageNumPerCandidate { pub new: set_hrmp_max_message_num_per_candidate::New, } @@ -30120,7 +35124,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_pvf_voting_ttl`]."] + #[doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."] pub struct SetPvfVotingTtl { pub new: set_pvf_voting_ttl::New, } @@ -30146,7 +35150,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_minimum_validation_upgrade_delay`]."] + #[doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"] + #[doc = "upgrade taking place."] + #[doc = ""] + #[doc = "See the field documentation for information and constraints for the new value."] pub struct SetMinimumValidationUpgradeDelay { pub new: set_minimum_validation_upgrade_delay::New, } @@ -30172,7 +35179,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_bypass_consistency_check`]."] + #[doc = "Setting this to true will disable consistency checks for the configuration setters."] + #[doc = "Use with caution."] pub struct SetBypassConsistencyCheck { pub new: set_bypass_consistency_check::New, } @@ -30198,14 +35206,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_async_backing_params`]."] + #[doc = "Set the asynchronous backing parameters."] pub struct SetAsyncBackingParams { pub new: set_async_backing_params::New, } pub mod set_async_backing_params { use super::runtime_types; pub type New = - runtime_types::polkadot_primitives::v6::async_backing::AsyncBackingParams; + runtime_types::polkadot_primitives::v7::async_backing::AsyncBackingParams; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetAsyncBackingParams { const PALLET: &'static str = "Configuration"; @@ -30225,14 +35233,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_executor_params`]."] + #[doc = "Set PVF executor parameters."] pub struct SetExecutorParams { pub new: set_executor_params::New, } pub mod set_executor_params { use super::runtime_types; pub type New = - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams; + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParams; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetExecutorParams { const PALLET: &'static str = "Configuration"; @@ -30252,7 +35260,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_base_fee`]."] + #[doc = "Set the on demand (parathreads) base fee."] pub struct SetOnDemandBaseFee { pub new: set_on_demand_base_fee::New, } @@ -30278,7 +35286,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_fee_variability`]."] + #[doc = "Set the on demand (parathreads) fee variability."] pub struct SetOnDemandFeeVariability { pub new: set_on_demand_fee_variability::New, } @@ -30304,7 +35312,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_queue_max_size`]."] + #[doc = "Set the on demand (parathreads) queue max size."] pub struct SetOnDemandQueueMaxSize { pub new: set_on_demand_queue_max_size::New, } @@ -30330,7 +35338,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_target_queue_utilization`]."] + #[doc = "Set the on demand (parathreads) fee variability."] pub struct SetOnDemandTargetQueueUtilization { pub new: set_on_demand_target_queue_utilization::New, } @@ -30356,7 +35364,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_on_demand_ttl`]."] + #[doc = "Set the on demand (parathreads) ttl in the claimqueue."] pub struct SetOnDemandTtl { pub new: set_on_demand_ttl::New, } @@ -30382,7 +35390,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_minimum_backing_votes`]."] + #[doc = "Set the minimum backing votes threshold."] pub struct SetMinimumBackingVotes { pub new: set_minimum_backing_votes::New, } @@ -30394,10 +35402,92 @@ pub mod api { const PALLET: &'static str = "Configuration"; const CALL: &'static str = "set_minimum_backing_votes"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set/Unset a 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::ext::subxt_core::blocks::StaticExtrinsic for SetNodeFeature { + const PALLET: &'static str = "Configuration"; + const CALL: &'static str = "set_node_feature"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "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::v7::ApprovalVotingParams; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetApprovalVotingParams { + const PALLET: &'static str = "Configuration"; + const CALL: &'static str = "set_approval_voting_params"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Set scheduler-params."] + pub struct SetSchedulerParams { + pub new: set_scheduler_params::New, + } + pub mod set_scheduler_params { + use super::runtime_types; + pub type New = runtime_types::polkadot_primitives::vstaging::SchedulerParams< + ::core::primitive::u32, + >; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetSchedulerParams { + const PALLET: &'static str = "Configuration"; + const CALL: &'static str = "set_scheduler_params"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::set_validation_upgrade_cooldown`]."] + #[doc = "Set the validation upgrade cooldown."] pub fn set_validation_upgrade_cooldown( &self, new: types::set_validation_upgrade_cooldown::New, @@ -30416,7 +35506,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_validation_upgrade_delay`]."] + #[doc = "Set the validation upgrade delay."] pub fn set_validation_upgrade_delay( &self, new: types::set_validation_upgrade_delay::New, @@ -30434,7 +35524,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_code_retention_period`]."] + #[doc = "Set the acceptance period for an included candidate."] pub fn set_code_retention_period( &self, new: types::set_code_retention_period::New, @@ -30453,7 +35543,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_code_size`]."] + #[doc = "Set the max validation code size for incoming upgrades."] pub fn set_max_code_size( &self, new: types::set_max_code_size::New, @@ -30471,7 +35561,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_pov_size`]."] + #[doc = "Set the max POV block size for incoming upgrades."] pub fn set_max_pov_size( &self, new: types::set_max_pov_size::New, @@ -30488,7 +35578,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_head_data_size`]."] + #[doc = "Set the max head data size for paras."] pub fn set_max_head_data_size( &self, new: types::set_max_head_data_size::New, @@ -30506,43 +35596,45 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_cores`]."] - pub fn set_on_demand_cores( + #[doc = "Set the number of coretime execution cores."] + #[doc = ""] + #[doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"] + #[doc = "this, if you really know what you are doing!"] + pub fn set_coretime_cores( &self, - new: types::set_on_demand_cores::New, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + new: types::set_coretime_cores::New, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload { ::subxt::ext::subxt_core::tx::payload::StaticPayload::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, ], ) } - #[doc = "See [`Pallet::set_on_demand_retries`]."] - pub fn set_on_demand_retries( + #[doc = "Set the max number of times a claim may timeout on a core before it is abandoned"] + pub fn set_max_availability_timeouts( &self, - new: types::set_on_demand_retries::New, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { + new: types::set_max_availability_timeouts::New, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::SetMaxAvailabilityTimeouts, + > { ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( "Configuration", - "set_on_demand_retries", - types::SetOnDemandRetries { new }, + "set_max_availability_timeouts", + types::SetMaxAvailabilityTimeouts { new }, [ - 228u8, 78u8, 216u8, 66u8, 17u8, 51u8, 84u8, 14u8, 80u8, 67u8, 24u8, - 138u8, 177u8, 108u8, 203u8, 87u8, 240u8, 125u8, 111u8, 223u8, 216u8, - 212u8, 69u8, 236u8, 216u8, 178u8, 166u8, 145u8, 115u8, 47u8, 147u8, - 235u8, + 53u8, 141u8, 53u8, 9u8, 149u8, 145u8, 48u8, 165u8, 157u8, 2u8, 45u8, + 23u8, 128u8, 233u8, 27u8, 132u8, 189u8, 212u8, 45u8, 187u8, 2u8, 112u8, + 26u8, 88u8, 233u8, 84u8, 148u8, 73u8, 222u8, 208u8, 195u8, 153u8, ], ) } - #[doc = "See [`Pallet::set_group_rotation_frequency`]."] + #[doc = "Set the parachain validator-group rotation frequency"] pub fn set_group_rotation_frequency( &self, new: types::set_group_rotation_frequency::New, @@ -30560,7 +35652,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_paras_availability_period`]."] + #[doc = "Set the availability period for paras."] pub fn set_paras_availability_period( &self, new: types::set_paras_availability_period::New, @@ -30578,7 +35670,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_scheduling_lookahead`]."] + #[doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."] pub fn set_scheduling_lookahead( &self, new: types::set_scheduling_lookahead::New, @@ -30597,7 +35689,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_validators_per_core`]."] + #[doc = "Set the maximum number of validators to assign to any core."] pub fn set_max_validators_per_core( &self, new: types::set_max_validators_per_core::New, @@ -30616,7 +35708,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_validators`]."] + #[doc = "Set the maximum number of validators to use in parachain consensus."] pub fn set_max_validators( &self, new: types::set_max_validators::New, @@ -30634,7 +35726,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_dispute_period`]."] + #[doc = "Set the dispute period, in number of sessions to keep for disputes."] pub fn set_dispute_period( &self, new: types::set_dispute_period::New, @@ -30652,7 +35744,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]."] + #[doc = "Set the dispute post conclusion acceptance period."] pub fn set_dispute_post_conclusion_acceptance_period( &self, new: types::set_dispute_post_conclusion_acceptance_period::New, @@ -30671,7 +35763,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_no_show_slots`]."] + #[doc = "Set the no show slots, in number of number of consensus slots."] + #[doc = "Must be at least 1."] pub fn set_no_show_slots( &self, new: types::set_no_show_slots::New, @@ -30688,7 +35781,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_n_delay_tranches`]."] + #[doc = "Set the total number of delay tranches."] pub fn set_n_delay_tranches( &self, new: types::set_n_delay_tranches::New, @@ -30706,7 +35799,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_zeroth_delay_tranche_width`]."] + #[doc = "Set the zeroth delay tranche width."] pub fn set_zeroth_delay_tranche_width( &self, new: types::set_zeroth_delay_tranche_width::New, @@ -30724,7 +35817,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_needed_approvals`]."] + #[doc = "Set the number of validators needed to approve a block."] pub fn set_needed_approvals( &self, new: types::set_needed_approvals::New, @@ -30741,7 +35834,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_relay_vrf_modulo_samples`]."] + #[doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."] pub fn set_relay_vrf_modulo_samples( &self, new: types::set_relay_vrf_modulo_samples::New, @@ -30760,7 +35853,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_upward_queue_count`]."] + #[doc = "Sets the maximum items that can present in a upward dispatch queue at once."] pub fn set_max_upward_queue_count( &self, new: types::set_max_upward_queue_count::New, @@ -30779,7 +35872,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_upward_queue_size`]."] + #[doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"] + #[doc = "once."] pub fn set_max_upward_queue_size( &self, new: types::set_max_upward_queue_size::New, @@ -30798,7 +35892,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_downward_message_size`]."] + #[doc = "Set the critical downward message size."] pub fn set_max_downward_message_size( &self, new: types::set_max_downward_message_size::New, @@ -30816,7 +35910,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_upward_message_size`]."] + #[doc = "Sets the maximum size of an upward message that can be sent by a candidate."] pub fn set_max_upward_message_size( &self, new: types::set_max_upward_message_size::New, @@ -30835,7 +35929,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_upward_message_num_per_candidate`]."] + #[doc = "Sets the maximum number of messages that a candidate can contain."] pub fn set_max_upward_message_num_per_candidate( &self, new: types::set_max_upward_message_num_per_candidate::New, @@ -30853,7 +35947,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_open_request_ttl`]."] + #[doc = "Sets the number of sessions after which an HRMP open channel request expires."] pub fn set_hrmp_open_request_ttl( &self, new: types::set_hrmp_open_request_ttl::New, @@ -30871,7 +35965,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_sender_deposit`]."] + #[doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."] pub fn set_hrmp_sender_deposit( &self, new: types::set_hrmp_sender_deposit::New, @@ -30888,7 +35982,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_recipient_deposit`]."] + #[doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"] + #[doc = "channel."] pub fn set_hrmp_recipient_deposit( &self, new: types::set_hrmp_recipient_deposit::New, @@ -30907,7 +36002,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_channel_max_capacity`]."] + #[doc = "Sets the maximum number of messages allowed in an HRMP channel at once."] pub fn set_hrmp_channel_max_capacity( &self, new: types::set_hrmp_channel_max_capacity::New, @@ -30926,7 +36021,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_channel_max_total_size`]."] + #[doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."] pub fn set_hrmp_channel_max_total_size( &self, new: types::set_hrmp_channel_max_total_size::New, @@ -30944,7 +36039,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_max_parachain_inbound_channels`]."] + #[doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."] pub fn set_hrmp_max_parachain_inbound_channels( &self, new: types::set_hrmp_max_parachain_inbound_channels::New, @@ -30962,7 +36057,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_channel_max_message_size`]."] + #[doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."] pub fn set_hrmp_channel_max_message_size( &self, new: types::set_hrmp_channel_max_message_size::New, @@ -30981,7 +36076,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_max_parachain_outbound_channels`]."] + #[doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."] pub fn set_hrmp_max_parachain_outbound_channels( &self, new: types::set_hrmp_max_parachain_outbound_channels::New, @@ -30999,7 +36094,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_hrmp_max_message_num_per_candidate`]."] + #[doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."] pub fn set_hrmp_max_message_num_per_candidate( &self, new: types::set_hrmp_max_message_num_per_candidate::New, @@ -31017,7 +36112,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_pvf_voting_ttl`]."] + #[doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."] pub fn set_pvf_voting_ttl( &self, new: types::set_pvf_voting_ttl::New, @@ -31035,7 +36130,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_minimum_validation_upgrade_delay`]."] + #[doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"] + #[doc = "upgrade taking place."] + #[doc = ""] + #[doc = "See the field documentation for information and constraints for the new value."] pub fn set_minimum_validation_upgrade_delay( &self, new: types::set_minimum_validation_upgrade_delay::New, @@ -31054,7 +36152,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_bypass_consistency_check`]."] + #[doc = "Setting this to true will disable consistency checks for the configuration setters."] + #[doc = "Use with caution."] pub fn set_bypass_consistency_check( &self, new: types::set_bypass_consistency_check::New, @@ -31073,7 +36172,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_async_backing_params`]."] + #[doc = "Set the asynchronous backing parameters."] pub fn set_async_backing_params( &self, new: types::set_async_backing_params::New, @@ -31092,7 +36191,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_executor_params`]."] + #[doc = "Set PVF executor parameters."] pub fn set_executor_params( &self, new: types::set_executor_params::New, @@ -31103,13 +36202,13 @@ 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, ], ) } - #[doc = "See [`Pallet::set_on_demand_base_fee`]."] + #[doc = "Set the on demand (parathreads) base fee."] pub fn set_on_demand_base_fee( &self, new: types::set_on_demand_base_fee::New, @@ -31126,7 +36225,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_fee_variability`]."] + #[doc = "Set the on demand (parathreads) fee variability."] pub fn set_on_demand_fee_variability( &self, new: types::set_on_demand_fee_variability::New, @@ -31145,7 +36244,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_queue_max_size`]."] + #[doc = "Set the on demand (parathreads) queue max size."] pub fn set_on_demand_queue_max_size( &self, new: types::set_on_demand_queue_max_size::New, @@ -31163,7 +36262,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_target_queue_utilization`]."] + #[doc = "Set the on demand (parathreads) fee variability."] pub fn set_on_demand_target_queue_utilization( &self, new: types::set_on_demand_target_queue_utilization::New, @@ -31182,7 +36281,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_on_demand_ttl`]."] + #[doc = "Set the on demand (parathreads) ttl in the claimqueue."] pub fn set_on_demand_ttl( &self, new: types::set_on_demand_ttl::New, @@ -31200,7 +36299,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_minimum_backing_votes`]."] + #[doc = "Set the minimum backing votes threshold."] pub fn set_minimum_backing_votes( &self, new: types::set_minimum_backing_votes::New, @@ -31218,6 +36317,60 @@ pub mod api { ], ) } + #[doc = "Set/Unset a node feature."] + pub fn set_node_feature( + &self, + index: types::set_node_feature::Index, + value: types::set_node_feature::Value, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Set approval-voting-params."] + pub fn set_approval_voting_params( + &self, + new: types::set_approval_voting_params::New, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::SetApprovalVotingParams, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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, + ], + ) + } + #[doc = "Set scheduler-params."] + pub fn set_scheduler_params( + &self, + new: types::set_scheduler_params::New, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Configuration", + "set_scheduler_params", + types::SetSchedulerParams { new }, + [ + 191u8, 87u8, 235u8, 71u8, 143u8, 46u8, 2u8, 88u8, 111u8, 15u8, 251u8, + 230u8, 241u8, 172u8, 183u8, 110u8, 33u8, 26u8, 43u8, 119u8, 74u8, 62u8, + 200u8, 226u8, 83u8, 180u8, 123u8, 132u8, 171u8, 65u8, 30u8, 13u8, + ], + ) + } } } pub mod storage { @@ -31254,10 +36407,9 @@ pub mod api { "ActiveConfig", (), [ - 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, + 9u8, 85u8, 45u8, 253u8, 3u8, 175u8, 115u8, 58u8, 71u8, 169u8, 68u8, + 163u8, 231u8, 24u8, 231u8, 216u8, 61u8, 134u8, 59u8, 89u8, 31u8, 103u8, + 105u8, 8u8, 182u8, 99u8, 51u8, 130u8, 255u8, 2u8, 0u8, 147u8, ], ) } @@ -31282,10 +36434,9 @@ pub mod api { "PendingConfigs", (), [ - 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, + 7u8, 170u8, 38u8, 177u8, 76u8, 75u8, 198u8, 192u8, 247u8, 137u8, 85u8, + 17u8, 74u8, 93u8, 170u8, 177u8, 198u8, 208u8, 183u8, 28u8, 178u8, 5u8, + 39u8, 246u8, 175u8, 78u8, 145u8, 37u8, 212u8, 20u8, 52u8, 110u8, ], ) } @@ -31341,13 +36492,13 @@ pub mod api { pub mod active_validator_indices { use super::runtime_types; pub type ActiveValidatorIndices = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >; } pub mod active_validator_keys { use super::runtime_types; pub type ActiveValidatorKeys = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, >; } pub mod allowed_relay_parents { @@ -31417,10 +36568,9 @@ pub mod api { "ActiveValidatorKeys", (), [ - 155u8, 151u8, 155u8, 8u8, 23u8, 38u8, 91u8, 12u8, 94u8, 69u8, 228u8, - 185u8, 14u8, 219u8, 215u8, 98u8, 235u8, 222u8, 157u8, 180u8, 230u8, - 121u8, 205u8, 167u8, 156u8, 134u8, 180u8, 213u8, 87u8, 61u8, 174u8, - 222u8, + 228u8, 111u8, 152u8, 198u8, 158u8, 9u8, 193u8, 222u8, 92u8, 190u8, + 91u8, 24u8, 98u8, 156u8, 88u8, 231u8, 255u8, 1u8, 74u8, 56u8, 44u8, + 110u8, 175u8, 29u8, 45u8, 242u8, 129u8, 181u8, 145u8, 5u8, 28u8, 40u8, ], ) } @@ -31489,13 +36639,13 @@ pub mod api { ); pub mod candidate_backed { use super::runtime_types; - pub type Field0 = runtime_types::polkadot_primitives::v6::CandidateReceipt< + pub type Field0 = runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >; pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::HeadData; - pub type Field2 = runtime_types::polkadot_primitives::v6::CoreIndex; - pub type Field3 = runtime_types::polkadot_primitives::v6::GroupIndex; + pub type Field2 = runtime_types::polkadot_primitives::v7::CoreIndex; + pub type Field3 = runtime_types::polkadot_primitives::v7::GroupIndex; } impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateBacked { const PALLET: &'static str = "ParaInclusion"; @@ -31520,13 +36670,13 @@ pub mod api { ); pub mod candidate_included { use super::runtime_types; - pub type Field0 = runtime_types::polkadot_primitives::v6::CandidateReceipt< + pub type Field0 = runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >; pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::HeadData; - pub type Field2 = runtime_types::polkadot_primitives::v6::CoreIndex; - pub type Field3 = runtime_types::polkadot_primitives::v6::GroupIndex; + pub type Field2 = runtime_types::polkadot_primitives::v7::CoreIndex; + pub type Field3 = runtime_types::polkadot_primitives::v7::GroupIndex; } impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateIncluded { const PALLET: &'static str = "ParaInclusion"; @@ -31550,12 +36700,12 @@ pub mod api { ); pub mod candidate_timed_out { use super::runtime_types; - pub type Field0 = runtime_types::polkadot_primitives::v6::CandidateReceipt< + pub type Field0 = runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >; pub type Field1 = runtime_types::polkadot_parachain_primitives::primitives::HeadData; - pub type Field2 = runtime_types::polkadot_primitives::v6::CoreIndex; + pub type Field2 = runtime_types::polkadot_primitives::v7::CoreIndex; } impl ::subxt::ext::subxt_core::events::StaticEvent for CandidateTimedOut { const PALLET: &'static str = "ParaInclusion"; @@ -31590,165 +36740,66 @@ pub mod api { use super::runtime_types; pub mod types { use super::runtime_types; - pub mod availability_bitfields { + pub mod v1 { use super::runtime_types; - pub type AvailabilityBitfields = runtime_types :: polkadot_runtime_parachains :: inclusion :: AvailabilityBitfieldRecord < :: core :: primitive :: u32 > ; - pub type Param0 = runtime_types::polkadot_primitives::v6::ValidatorIndex; - } - pub mod pending_availability { - use super::runtime_types; - pub type PendingAvailability = runtime_types :: polkadot_runtime_parachains :: inclusion :: CandidatePendingAvailability < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > ; - pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; - } - pub mod pending_availability_commitments { - use super::runtime_types; - pub type PendingAvailabilityCommitments = - runtime_types::polkadot_primitives::v6::CandidateCommitments< - ::core::primitive::u32, - >; + pub type V1 = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: inclusion :: CandidatePendingAvailability < :: subxt :: ext :: subxt_core :: utils :: H256 , :: core :: primitive :: u32 > > ; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } } pub struct StorageApi; impl StorageApi { - #[doc = " The latest bitfield for each validator, referred to by their index in the validator set."] - pub fn availability_bitfields_iter( + #[doc = " Candidates pending availability by `ParaId`. They form a chain starting from the latest"] + #[doc = " included head of the para."] + #[doc = " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage"] + #[doc = " would otherwise have the exact same prefix which could cause undefined behaviour when doing"] + #[doc = " the migration."] + pub fn v1_iter( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< (), - types::availability_bitfields::AvailabilityBitfields, + types::v1::V1, (), (), ::subxt::ext::subxt_core::utils::Yes, > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "ParaInclusion", - "AvailabilityBitfields", + "V1", (), [ - 163u8, 169u8, 217u8, 160u8, 147u8, 165u8, 186u8, 21u8, 171u8, 177u8, - 74u8, 69u8, 55u8, 205u8, 46u8, 13u8, 253u8, 83u8, 55u8, 190u8, 22u8, - 61u8, 32u8, 209u8, 54u8, 120u8, 187u8, 39u8, 114u8, 70u8, 212u8, 170u8, + 168u8, 102u8, 148u8, 186u8, 81u8, 2u8, 106u8, 60u8, 191u8, 34u8, 196u8, + 207u8, 208u8, 186u8, 138u8, 3u8, 31u8, 128u8, 200u8, 132u8, 34u8, + 248u8, 248u8, 14u8, 109u8, 197u8, 44u8, 140u8, 253u8, 33u8, 186u8, + 71u8, ], ) } - #[doc = " The latest bitfield for each validator, referred to by their index in the validator set."] - pub fn availability_bitfields( + #[doc = " Candidates pending availability by `ParaId`. They form a chain starting from the latest"] + #[doc = " included head of the para."] + #[doc = " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage"] + #[doc = " would otherwise have the exact same prefix which could cause undefined behaviour when doing"] + #[doc = " the migration."] + pub fn v1( &self, - _0: impl ::core::borrow::Borrow, + _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::availability_bitfields::Param0, - >, - types::availability_bitfields::AvailabilityBitfields, + ::subxt::ext::subxt_core::storage::address::StaticStorageKey, + types::v1::V1, ::subxt::ext::subxt_core::utils::Yes, (), (), > { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "ParaInclusion", - "AvailabilityBitfields", + "V1", ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( _0.borrow(), ), [ - 163u8, 169u8, 217u8, 160u8, 147u8, 165u8, 186u8, 21u8, 171u8, 177u8, - 74u8, 69u8, 55u8, 205u8, 46u8, 13u8, 253u8, 83u8, 55u8, 190u8, 22u8, - 61u8, 32u8, 209u8, 54u8, 120u8, 187u8, 39u8, 114u8, 70u8, 212u8, 170u8, - ], - ) - } - #[doc = " Candidates pending availability by `ParaId`."] - pub fn pending_availability_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::pending_availability::PendingAvailability, - (), - (), - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ParaInclusion", - "PendingAvailability", - (), - [ - 164u8, 175u8, 34u8, 182u8, 190u8, 147u8, 42u8, 185u8, 162u8, 130u8, - 33u8, 159u8, 234u8, 242u8, 90u8, 119u8, 2u8, 195u8, 48u8, 150u8, 135u8, - 87u8, 8u8, 142u8, 243u8, 142u8, 57u8, 121u8, 225u8, 218u8, 22u8, 132u8, - ], - ) - } - #[doc = " Candidates pending availability by `ParaId`."] - pub fn pending_availability( - &self, - _0: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::pending_availability::Param0, - >, - types::pending_availability::PendingAvailability, - ::subxt::ext::subxt_core::utils::Yes, - (), - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ParaInclusion", - "PendingAvailability", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - [ - 164u8, 175u8, 34u8, 182u8, 190u8, 147u8, 42u8, 185u8, 162u8, 130u8, - 33u8, 159u8, 234u8, 242u8, 90u8, 119u8, 2u8, 195u8, 48u8, 150u8, 135u8, - 87u8, 8u8, 142u8, 243u8, 142u8, 57u8, 121u8, 225u8, 218u8, 22u8, 132u8, - ], - ) - } - #[doc = " The commitments of candidates pending availability, by `ParaId`."] - pub fn pending_availability_commitments_iter( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::pending_availability_commitments::PendingAvailabilityCommitments, - (), - (), - ::subxt::ext::subxt_core::utils::Yes, - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ParaInclusion", - "PendingAvailabilityCommitments", - (), - [ - 196u8, 210u8, 210u8, 16u8, 246u8, 105u8, 121u8, 178u8, 5u8, 48u8, 40u8, - 183u8, 63u8, 147u8, 48u8, 74u8, 20u8, 83u8, 76u8, 84u8, 41u8, 30u8, - 182u8, 246u8, 164u8, 108u8, 113u8, 16u8, 169u8, 64u8, 97u8, 202u8, - ], - ) - } - #[doc = " The commitments of candidates pending availability, by `ParaId`."] - pub fn pending_availability_commitments( - &self, - _0: impl ::core::borrow::Borrow, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - ::subxt::ext::subxt_core::storage::address::StaticStorageKey< - types::pending_availability_commitments::Param0, - >, - types::pending_availability_commitments::PendingAvailabilityCommitments, - ::subxt::ext::subxt_core::utils::Yes, - (), - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "ParaInclusion", - "PendingAvailabilityCommitments", - ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( - _0.borrow(), - ), - [ - 196u8, 210u8, 210u8, 16u8, 246u8, 105u8, 121u8, 178u8, 5u8, 48u8, 40u8, - 183u8, 63u8, 147u8, 48u8, 74u8, 20u8, 83u8, 76u8, 84u8, 41u8, 30u8, - 182u8, 246u8, 164u8, 108u8, 113u8, 16u8, 169u8, 64u8, 97u8, 202u8, + 168u8, 102u8, 148u8, 186u8, 81u8, 2u8, 106u8, 60u8, 191u8, 34u8, 196u8, + 207u8, 208u8, 186u8, 138u8, 3u8, 31u8, 128u8, 200u8, 132u8, 34u8, + 248u8, 248u8, 14u8, 109u8, 197u8, 44u8, 140u8, 253u8, 33u8, 186u8, + 71u8, ], ) } @@ -31782,13 +36833,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::enter`]."] + #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."] pub struct Enter { pub data: enter::Data, } pub mod enter { use super::runtime_types; - pub type Data = runtime_types::polkadot_primitives::v6::InherentData< + pub type Data = runtime_types::polkadot_primitives::v7::InherentData< runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>, >; } @@ -31799,7 +36850,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::enter`]."] + #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."] pub fn enter( &self, data: types::enter::Data, @@ -31810,9 +36861,9 @@ 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, + 244u8, 74u8, 26u8, 233u8, 127u8, 208u8, 55u8, 137u8, 180u8, 244u8, + 70u8, 55u8, 177u8, 211u8, 53u8, 224u8, 167u8, 95u8, 71u8, 211u8, 204u8, + 137u8, 42u8, 149u8, 209u8, 214u8, 26u8, 2u8, 67u8, 107u8, 131u8, 72u8, ], ) } @@ -31829,7 +36880,7 @@ pub mod api { pub mod on_chain_votes { use super::runtime_types; pub type OnChainVotes = - runtime_types::polkadot_primitives::v6::ScrapedOnChainVotes< + runtime_types::polkadot_primitives::v7::ScrapedOnChainVotes< ::subxt::ext::subxt_core::utils::H256, >; } @@ -31877,10 +36928,9 @@ pub mod api { "OnChainVotes", (), [ - 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, + 97u8, 41u8, 197u8, 241u8, 12u8, 210u8, 132u8, 148u8, 4u8, 230u8, 206u8, + 170u8, 41u8, 135u8, 147u8, 63u8, 47u8, 192u8, 0u8, 133u8, 104u8, 186u8, + 137u8, 94u8, 227u8, 108u8, 253u8, 86u8, 207u8, 233u8, 65u8, 27u8, ], ) } @@ -31898,7 +36948,7 @@ pub mod api { use super::runtime_types; pub type ValidatorGroups = ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >, >; } @@ -31916,7 +36966,7 @@ pub mod api { } pub mod claim_queue { use super::runtime_types; - pub type ClaimQueue = :: subxt :: ext :: subxt_core :: utils :: KeyedVec < runtime_types :: polkadot_primitives :: v6 :: CoreIndex , :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < :: core :: option :: Option < runtime_types :: polkadot_runtime_parachains :: scheduler :: pallet :: ParasEntry < :: core :: primitive :: u32 > > > > ; + pub type ClaimQueue = :: subxt :: ext :: subxt_core :: utils :: KeyedVec < runtime_types :: polkadot_primitives :: v7 :: CoreIndex , :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: scheduler :: pallet :: ParasEntry < :: core :: primitive :: u32 > > > ; } } pub struct StorageApi; @@ -31948,10 +36998,8 @@ pub mod api { ], ) } - #[doc = " One entry for each availability core. Entries are `None` if the core is not currently"] - #[doc = " occupied. Can be temporarily `Some` if scheduled but not occupied."] - #[doc = " The i'th parachain belongs to the i'th core, with the remaining cores all being"] - #[doc = " parathread-multiplexers."] + #[doc = " One entry for each availability core. The i'th parachain belongs to the i'th core, with the"] + #[doc = " remaining cores all being on demand parachain multiplexers."] #[doc = ""] #[doc = " Bounded by the maximum of either of these two values:"] #[doc = " * The number of parachains and parathread multiplexers"] @@ -31970,9 +37018,10 @@ pub mod api { "AvailabilityCores", (), [ - 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, ], ) } @@ -32004,10 +37053,8 @@ pub mod api { ) } #[doc = " One entry for each availability core. The `VecDeque` represents the assignments to be"] - #[doc = " scheduled on that core. `None` is used to signal to not schedule the next para of the core"] - #[doc = " as there is one currently being scheduled. Not using `None` here would overwrite the"] - #[doc = " `CoreState` in the runtime API. The value contained here will not be valid after the end of"] - #[doc = " a block. Runtime APIs should be used to determine scheduled cores/ for the upcoming block."] + #[doc = " scheduled on that core. The value contained here will not be valid after the end of"] + #[doc = " a block. Runtime APIs should be used to determine scheduled cores for the upcoming block."] pub fn claim_queue( &self, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< @@ -32022,9 +37069,10 @@ pub mod api { "ClaimQueue", (), [ - 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, ], ) } @@ -32058,7 +37106,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_current_code`]."] + #[doc = "Set the storage for the parachain validation code immediately."] pub struct ForceSetCurrentCode { pub para: force_set_current_code::Para, pub new_code: force_set_current_code::NewCode, @@ -32087,7 +37135,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_current_head`]."] + #[doc = "Set the storage for the current parachain head data immediately."] pub struct ForceSetCurrentHead { pub para: force_set_current_head::Para, pub new_head: force_set_current_head::NewHead, @@ -32116,7 +37164,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_schedule_code_upgrade`]."] + #[doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."] pub struct ForceScheduleCodeUpgrade { pub para: force_schedule_code_upgrade::Para, pub new_code: force_schedule_code_upgrade::NewCode, @@ -32147,7 +37195,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_note_new_head`]."] + #[doc = "Note a new block head for para within the context of the current block."] pub struct ForceNoteNewHead { pub para: force_note_new_head::Para, pub new_head: force_note_new_head::NewHead, @@ -32176,7 +37224,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_queue_action`]."] + #[doc = "Put a parachain directly into the next session's action queue."] + #[doc = "We can't queue it any sooner than this without going into the"] + #[doc = "initializer..."] pub struct ForceQueueAction { pub para: force_queue_action::Para, } @@ -32202,7 +37252,20 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_trusted_validation_code`]."] + #[doc = "Adds the validation code to the storage."] + #[doc = ""] + #[doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"] + #[doc = "is running for that code, it will be instantly accepted."] + #[doc = ""] + #[doc = "Otherwise, the code will be added into the storage. Note that the code will be added"] + #[doc = "into storage with reference count 0. This is to account the fact that there are no users"] + #[doc = "for this code yet. The caller will have to make sure that this code eventually gets"] + #[doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"] + #[doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"] + #[doc = "manipulation."] + #[doc = ""] + #[doc = "This function is mainly meant to be used for upgrading parachains that do not follow"] + #[doc = "the go-ahead signal while the PVF pre-checking feature is enabled."] pub struct AddTrustedValidationCode { pub validation_code: add_trusted_validation_code::ValidationCode, } @@ -32229,7 +37292,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::poke_unused_validation_code`]."] + #[doc = "Remove the validation code from the storage iff the reference count is 0."] + #[doc = ""] + #[doc = "This is better than removing the storage directly, because it will not remove the code"] + #[doc = "that was suddenly got used by some parachain while this dispatchable was pending"] + #[doc = "dispatching."] pub struct PokeUnusedValidationCode { pub validation_code_hash: poke_unused_validation_code::ValidationCodeHash, } @@ -32255,16 +37322,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::include_pvf_check_statement`]."] + #[doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"] + #[doc = "enacts the results if that was the last vote before achieving the supermajority."] pub struct IncludePvfCheckStatement { pub stmt: include_pvf_check_statement::Stmt, pub signature: include_pvf_check_statement::Signature, } pub mod include_pvf_check_statement { use super::runtime_types; - pub type Stmt = runtime_types::polkadot_primitives::v6::PvfCheckStatement; + pub type Stmt = runtime_types::polkadot_primitives::v7::PvfCheckStatement; pub type Signature = - runtime_types::polkadot_primitives::v6::validator_app::Signature; + runtime_types::polkadot_primitives::v7::validator_app::Signature; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for IncludePvfCheckStatement { const PALLET: &'static str = "Paras"; @@ -32284,7 +37352,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_most_recent_context`]."] + #[doc = "Set the storage for the current parachain head data immediately."] pub struct ForceSetMostRecentContext { pub para: force_set_most_recent_context::Para, pub context: force_set_most_recent_context::Context, @@ -32301,7 +37369,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_set_current_code`]."] + #[doc = "Set the storage for the parachain validation code immediately."] pub fn force_set_current_code( &self, para: types::force_set_current_code::Para, @@ -32320,7 +37388,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_set_current_head`]."] + #[doc = "Set the storage for the current parachain head data immediately."] pub fn force_set_current_head( &self, para: types::force_set_current_head::Para, @@ -32339,7 +37407,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_schedule_code_upgrade`]."] + #[doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."] pub fn force_schedule_code_upgrade( &self, para: types::force_schedule_code_upgrade::Para, @@ -32364,7 +37432,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_note_new_head`]."] + #[doc = "Note a new block head for para within the context of the current block."] pub fn force_note_new_head( &self, para: types::force_note_new_head::Para, @@ -32382,7 +37450,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_queue_action`]."] + #[doc = "Put a parachain directly into the next session's action queue."] + #[doc = "We can't queue it any sooner than this without going into the"] + #[doc = "initializer..."] pub fn force_queue_action( &self, para: types::force_queue_action::Para, @@ -32400,7 +37470,20 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::add_trusted_validation_code`]."] + #[doc = "Adds the validation code to the storage."] + #[doc = ""] + #[doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"] + #[doc = "is running for that code, it will be instantly accepted."] + #[doc = ""] + #[doc = "Otherwise, the code will be added into the storage. Note that the code will be added"] + #[doc = "into storage with reference count 0. This is to account the fact that there are no users"] + #[doc = "for this code yet. The caller will have to make sure that this code eventually gets"] + #[doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"] + #[doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"] + #[doc = "manipulation."] + #[doc = ""] + #[doc = "This function is mainly meant to be used for upgrading parachains that do not follow"] + #[doc = "the go-ahead signal while the PVF pre-checking feature is enabled."] pub fn add_trusted_validation_code( &self, validation_code: types::add_trusted_validation_code::ValidationCode, @@ -32419,7 +37502,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::poke_unused_validation_code`]."] + #[doc = "Remove the validation code from the storage iff the reference count is 0."] + #[doc = ""] + #[doc = "This is better than removing the storage directly, because it will not remove the code"] + #[doc = "that was suddenly got used by some parachain while this dispatchable was pending"] + #[doc = "dispatching."] pub fn poke_unused_validation_code( &self, validation_code_hash: types::poke_unused_validation_code::ValidationCodeHash, @@ -32439,7 +37526,8 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::include_pvf_check_statement`]."] + #[doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"] + #[doc = "enacts the results if that was the last vote before achieving the supermajority."] pub fn include_pvf_check_statement( &self, stmt: types::include_pvf_check_statement::Stmt, @@ -32452,14 +37540,13 @@ pub mod api { "include_pvf_check_statement", types::IncludePvfCheckStatement { stmt, signature }, [ - 104u8, 113u8, 121u8, 186u8, 41u8, 70u8, 254u8, 44u8, 207u8, 94u8, 61u8, - 148u8, 106u8, 240u8, 165u8, 223u8, 231u8, 190u8, 157u8, 97u8, 55u8, - 90u8, 229u8, 112u8, 129u8, 224u8, 29u8, 180u8, 242u8, 203u8, 195u8, - 19u8, + 207u8, 92u8, 120u8, 222u8, 183u8, 105u8, 82u8, 155u8, 62u8, 41u8, 87u8, + 66u8, 240u8, 71u8, 160u8, 114u8, 99u8, 195u8, 247u8, 190u8, 40u8, + 132u8, 71u8, 161u8, 109u8, 207u8, 9u8, 163u8, 125u8, 98u8, 71u8, 107u8, ], ) } - #[doc = "See [`Pallet::force_set_most_recent_context`]."] + #[doc = "Set the storage for the current parachain head data immediately."] pub fn force_set_most_recent_context( &self, para: types::force_set_most_recent_context::Para, @@ -32734,6 +37821,13 @@ pub mod api { pub type FutureCodeUpgrades = ::core::primitive::u32; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } + pub mod future_code_upgrades_at { + use super::runtime_types; + pub type FutureCodeUpgradesAt = ::subxt::ext::subxt_core::alloc::vec::Vec<( + runtime_types::polkadot_parachain_primitives::primitives::Id, + ::core::primitive::u32, + )>; + } pub mod future_code_hash { use super::runtime_types; pub type FutureCodeHash = runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ; @@ -32742,13 +37836,13 @@ pub mod api { pub mod upgrade_go_ahead_signal { use super::runtime_types; pub type UpgradeGoAheadSignal = - runtime_types::polkadot_primitives::v6::UpgradeGoAhead; + runtime_types::polkadot_primitives::v7::UpgradeGoAhead; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } pub mod upgrade_restriction_signal { use super::runtime_types; pub type UpgradeRestrictionSignal = - runtime_types::polkadot_primitives::v6::UpgradeRestriction; + runtime_types::polkadot_primitives::v7::UpgradeRestriction; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } pub mod upgrade_cooldowns { @@ -32810,9 +37904,9 @@ pub mod api { "PvfActiveVoteMap", (), [ - 72u8, 55u8, 139u8, 104u8, 161u8, 63u8, 114u8, 153u8, 16u8, 221u8, 60u8, - 88u8, 52u8, 207u8, 123u8, 193u8, 11u8, 30u8, 19u8, 39u8, 231u8, 39u8, - 251u8, 44u8, 248u8, 129u8, 181u8, 173u8, 248u8, 89u8, 43u8, 106u8, + 180u8, 73u8, 103u8, 207u8, 245u8, 111u8, 142u8, 8u8, 159u8, 143u8, + 245u8, 212u8, 149u8, 78u8, 213u8, 224u8, 206u8, 8u8, 95u8, 40u8, 24u8, + 72u8, 123u8, 41u8, 198u8, 190u8, 9u8, 33u8, 247u8, 205u8, 60u8, 199u8, ], ) } @@ -32839,9 +37933,9 @@ pub mod api { _0.borrow(), ), [ - 72u8, 55u8, 139u8, 104u8, 161u8, 63u8, 114u8, 153u8, 16u8, 221u8, 60u8, - 88u8, 52u8, 207u8, 123u8, 193u8, 11u8, 30u8, 19u8, 39u8, 231u8, 39u8, - 251u8, 44u8, 248u8, 129u8, 181u8, 173u8, 248u8, 89u8, 43u8, 106u8, + 180u8, 73u8, 103u8, 207u8, 245u8, 111u8, 142u8, 8u8, 159u8, 143u8, + 245u8, 212u8, 149u8, 78u8, 213u8, 224u8, 206u8, 8u8, 95u8, 40u8, 24u8, + 72u8, 123u8, 41u8, 198u8, 190u8, 9u8, 33u8, 247u8, 205u8, 60u8, 199u8, ], ) } @@ -33257,7 +38351,8 @@ pub mod api { ], ) } - #[doc = " The block number at which the planned code change is expected for a para."] + #[doc = " The block number at which the planned code change is expected for a parachain."] + #[doc = ""] #[doc = " The change will be applied after the first parablock for this ID included which executes"] #[doc = " in the context of a relay chain block with a number >= `expected_at`."] pub fn future_code_upgrades_iter( @@ -33280,7 +38375,8 @@ pub mod api { ], ) } - #[doc = " The block number at which the planned code change is expected for a para."] + #[doc = " The block number at which the planned code change is expected for a parachain."] + #[doc = ""] #[doc = " The change will be applied after the first parablock for this ID included which executes"] #[doc = " in the context of a relay chain block with a number >= `expected_at`."] pub fn future_code_upgrades( @@ -33308,6 +38404,35 @@ pub mod api { ], ) } + #[doc = " The list of upcoming future code upgrades."] + #[doc = ""] + #[doc = " Each item is a pair of the parachain and the expected block at which the upgrade should be"] + #[doc = " applied. The upgrade will be applied at the given relay chain block. In contrast to"] + #[doc = " [`FutureCodeUpgrades`] this code upgrade will be applied regardless the parachain making any"] + #[doc = " progress or not."] + #[doc = ""] + #[doc = " Ordered ascending by block number."] + pub fn future_code_upgrades_at( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::future_code_upgrades_at::FutureCodeUpgradesAt, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Paras", + "FutureCodeUpgradesAt", + (), + [ + 106u8, 115u8, 201u8, 132u8, 198u8, 78u8, 236u8, 157u8, 246u8, 176u8, + 236u8, 158u8, 90u8, 166u8, 25u8, 230u8, 30u8, 149u8, 163u8, 15u8, + 108u8, 145u8, 167u8, 118u8, 74u8, 211u8, 96u8, 173u8, 56u8, 11u8, + 181u8, 146u8, + ], + ) + } #[doc = " The actual future code hash of a para."] #[doc = ""] #[doc = " Corresponding code can be retrieved with [`CodeByHash`]."] @@ -33515,8 +38640,10 @@ pub mod api { ], ) } - #[doc = " The list of upcoming code upgrades. Each item is a pair of which para performs a code"] - #[doc = " upgrade and at which relay-chain block it is expected at."] + #[doc = " The list of upcoming code upgrades."] + #[doc = ""] + #[doc = " Each item is a pair of which para performs a code upgrade and at which relay-chain block it"] + #[doc = " is expected at."] #[doc = ""] #[doc = " Ordered ascending by block number."] pub fn upcoming_upgrades( @@ -33793,7 +38920,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_approve`]."] + #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"] + #[doc = "blocks in all relay chain blocks up to and including the given number in the current"] + #[doc = "chain are valid and should be finalized."] pub struct ForceApprove { pub up_to: force_approve::UpTo, } @@ -33808,7 +38937,9 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_approve`]."] + #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"] + #[doc = "blocks in all relay chain blocks up to and including the given number in the current"] + #[doc = "chain are valid and should be finalized."] pub fn force_approve( &self, up_to: types::force_approve::UpTo, @@ -33892,9 +39023,10 @@ pub mod api { "BufferedSessionChanges", (), [ - 99u8, 153u8, 100u8, 11u8, 28u8, 62u8, 163u8, 239u8, 177u8, 55u8, 151u8, - 242u8, 227u8, 59u8, 176u8, 10u8, 227u8, 51u8, 252u8, 191u8, 233u8, - 36u8, 1u8, 131u8, 255u8, 56u8, 6u8, 65u8, 5u8, 185u8, 114u8, 139u8, + 52u8, 253u8, 99u8, 88u8, 47u8, 128u8, 246u8, 183u8, 252u8, 144u8, + 187u8, 140u8, 169u8, 21u8, 167u8, 72u8, 246u8, 217u8, 140u8, 234u8, + 222u8, 57u8, 254u8, 33u8, 237u8, 212u8, 136u8, 204u8, 79u8, 185u8, + 83u8, 36u8, ], ) } @@ -34116,7 +39248,16 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::hrmp_init_open_channel`]."] + #[doc = "Initiate opening a channel from a parachain to a given recipient with given channel"] + #[doc = "parameters."] + #[doc = ""] + #[doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."] + #[doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."] + #[doc = ""] + #[doc = "These numbers are a subject to the relay-chain configuration limits."] + #[doc = ""] + #[doc = "The channel can be opened only after the recipient confirms it and only on a session"] + #[doc = "change."] pub struct HrmpInitOpenChannel { pub recipient: hrmp_init_open_channel::Recipient, pub proposed_max_capacity: hrmp_init_open_channel::ProposedMaxCapacity, @@ -34147,7 +39288,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::hrmp_accept_open_channel`]."] + #[doc = "Accept a pending open channel request from the given sender."] + #[doc = ""] + #[doc = "The channel will be opened only on the next session boundary."] pub struct HrmpAcceptOpenChannel { pub sender: hrmp_accept_open_channel::Sender, } @@ -34173,7 +39316,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::hrmp_close_channel`]."] + #[doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"] + #[doc = "recipient in the channel being closed."] + #[doc = ""] + #[doc = "The closure can only happen on a session change."] pub struct HrmpCloseChannel { pub channel_id: hrmp_close_channel::ChannelId, } @@ -34200,7 +39346,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_clean_hrmp`]."] + #[doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."] + #[doc = "Normally this happens once per session, but this allows you to trigger the cleanup"] + #[doc = "immediately for a specific parachain."] + #[doc = ""] + #[doc = "Number of inbound and outbound channels for `para` must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub struct ForceCleanHrmp { pub para: force_clean_hrmp::Para, pub num_inbound: force_clean_hrmp::NumInbound, @@ -34230,7 +39382,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_process_hrmp_open`]."] + #[doc = "Force process HRMP open channel requests."] + #[doc = ""] + #[doc = "If there are pending HRMP open channel requests, you can use this function to process"] + #[doc = "all of those requests immediately."] + #[doc = ""] + #[doc = "Total number of opening channels must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub struct ForceProcessHrmpOpen { pub channels: force_process_hrmp_open::Channels, } @@ -34256,7 +39415,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_process_hrmp_close`]."] + #[doc = "Force process HRMP close channel requests."] + #[doc = ""] + #[doc = "If there are pending HRMP close channel requests, you can use this function to process"] + #[doc = "all of those requests immediately."] + #[doc = ""] + #[doc = "Total number of closing channels must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub struct ForceProcessHrmpClose { pub channels: force_process_hrmp_close::Channels, } @@ -34282,7 +39448,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::hrmp_cancel_open_request`]."] + #[doc = "This cancels a pending open channel request. It can be canceled by either of the sender"] + #[doc = "or the recipient for that request. The origin must be either of those."] + #[doc = ""] + #[doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"] + #[doc = "already accepted."] + #[doc = ""] + #[doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"] + #[doc = "witness data."] pub struct HrmpCancelOpenRequest { pub channel_id: hrmp_cancel_open_request::ChannelId, pub open_requests: hrmp_cancel_open_request::OpenRequests, @@ -34311,7 +39484,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_open_hrmp_channel`]."] + #[doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"] + #[doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"] + #[doc = "configured limits."] + #[doc = ""] + #[doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"] + #[doc = "governed by the system, e.g. a system parachain."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub struct ForceOpenHrmpChannel { pub sender: force_open_hrmp_channel::Sender, pub recipient: force_open_hrmp_channel::Recipient, @@ -34344,7 +39524,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::establish_system_channel`]."] + #[doc = "Establish an HRMP channel between two system chains. If the channel does not already"] + #[doc = "exist, the transaction fees will be refunded to the caller. The system does not take"] + #[doc = "deposits for channels between system chains, and automatically sets the message number"] + #[doc = "and size limits to the maximum allowed by the network's configuration."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `sender`: A system chain, `ParaId`."] + #[doc = "- `recipient`: A system chain, `ParaId`."] + #[doc = ""] + #[doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"] + #[doc = "the channel does not exist yet, there is no fee."] pub struct EstablishSystemChannel { pub sender: establish_system_channel::Sender, pub recipient: establish_system_channel::Recipient, @@ -34373,7 +39564,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::poke_channel_deposits`]."] + #[doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"] + #[doc = "with system chains do not require a deposit."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `sender`: A chain, `ParaId`."] + #[doc = "- `recipient`: A chain, `ParaId`."] + #[doc = ""] + #[doc = "Any signed origin can call this function."] pub struct PokeChannelDeposits { pub sender: poke_channel_deposits::Sender, pub recipient: poke_channel_deposits::Recipient, @@ -34388,10 +39587,52 @@ pub mod api { const PALLET: &'static str = "Hrmp"; const CALL: &'static str = "poke_channel_deposits"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `target_system_chain`: A system chain, `ParaId`."] + #[doc = ""] + #[doc = "The origin needs to be the parachain origin."] + pub struct EstablishChannelWithSystem { + pub target_system_chain: establish_channel_with_system::TargetSystemChain, + } + pub mod establish_channel_with_system { + use super::runtime_types; + pub type TargetSystemChain = + runtime_types::polkadot_parachain_primitives::primitives::Id; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for EstablishChannelWithSystem { + const PALLET: &'static str = "Hrmp"; + const CALL: &'static str = "establish_channel_with_system"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::hrmp_init_open_channel`]."] + #[doc = "Initiate opening a channel from a parachain to a given recipient with given channel"] + #[doc = "parameters."] + #[doc = ""] + #[doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."] + #[doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."] + #[doc = ""] + #[doc = "These numbers are a subject to the relay-chain configuration limits."] + #[doc = ""] + #[doc = "The channel can be opened only after the recipient confirms it and only on a session"] + #[doc = "change."] pub fn hrmp_init_open_channel( &self, recipient: types::hrmp_init_open_channel::Recipient, @@ -34415,7 +39656,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::hrmp_accept_open_channel`]."] + #[doc = "Accept a pending open channel request from the given sender."] + #[doc = ""] + #[doc = "The channel will be opened only on the next session boundary."] pub fn hrmp_accept_open_channel( &self, sender: types::hrmp_accept_open_channel::Sender, @@ -34433,7 +39676,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::hrmp_close_channel`]."] + #[doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"] + #[doc = "recipient in the channel being closed."] + #[doc = ""] + #[doc = "The closure can only happen on a session change."] pub fn hrmp_close_channel( &self, channel_id: types::hrmp_close_channel::ChannelId, @@ -34451,7 +39697,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_clean_hrmp`]."] + #[doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."] + #[doc = "Normally this happens once per session, but this allows you to trigger the cleanup"] + #[doc = "immediately for a specific parachain."] + #[doc = ""] + #[doc = "Number of inbound and outbound channels for `para` must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub fn force_clean_hrmp( &self, para: types::force_clean_hrmp::Para, @@ -34474,7 +39726,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_process_hrmp_open`]."] + #[doc = "Force process HRMP open channel requests."] + #[doc = ""] + #[doc = "If there are pending HRMP open channel requests, you can use this function to process"] + #[doc = "all of those requests immediately."] + #[doc = ""] + #[doc = "Total number of opening channels must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub fn force_process_hrmp_open( &self, channels: types::force_process_hrmp_open::Channels, @@ -34492,7 +39751,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_process_hrmp_close`]."] + #[doc = "Force process HRMP close channel requests."] + #[doc = ""] + #[doc = "If there are pending HRMP close channel requests, you can use this function to process"] + #[doc = "all of those requests immediately."] + #[doc = ""] + #[doc = "Total number of closing channels must be provided as witness data."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub fn force_process_hrmp_close( &self, channels: types::force_process_hrmp_close::Channels, @@ -34511,7 +39777,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::hrmp_cancel_open_request`]."] + #[doc = "This cancels a pending open channel request. It can be canceled by either of the sender"] + #[doc = "or the recipient for that request. The origin must be either of those."] + #[doc = ""] + #[doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"] + #[doc = "already accepted."] + #[doc = ""] + #[doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"] + #[doc = "witness data."] pub fn hrmp_cancel_open_request( &self, channel_id: types::hrmp_cancel_open_request::ChannelId, @@ -34533,7 +39806,14 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_open_hrmp_channel`]."] + #[doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"] + #[doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"] + #[doc = "configured limits."] + #[doc = ""] + #[doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"] + #[doc = "governed by the system, e.g. a system parachain."] + #[doc = ""] + #[doc = "Origin must be the `ChannelManager`."] pub fn force_open_hrmp_channel( &self, sender: types::force_open_hrmp_channel::Sender, @@ -34558,7 +39838,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::establish_system_channel`]."] + #[doc = "Establish an HRMP channel between two system chains. If the channel does not already"] + #[doc = "exist, the transaction fees will be refunded to the caller. The system does not take"] + #[doc = "deposits for channels between system chains, and automatically sets the message number"] + #[doc = "and size limits to the maximum allowed by the network's configuration."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `sender`: A system chain, `ParaId`."] + #[doc = "- `recipient`: A system chain, `ParaId`."] + #[doc = ""] + #[doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"] + #[doc = "the channel does not exist yet, there is no fee."] pub fn establish_system_channel( &self, sender: types::establish_system_channel::Sender, @@ -34577,7 +39868,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::poke_channel_deposits`]."] + #[doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"] + #[doc = "with system chains do not require a deposit."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `sender`: A chain, `ParaId`."] + #[doc = "- `recipient`: A chain, `ParaId`."] + #[doc = ""] + #[doc = "Any signed origin can call this function."] pub fn poke_channel_deposits( &self, sender: types::poke_channel_deposits::Sender, @@ -34595,6 +39894,32 @@ pub mod api { ], ) } + #[doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."] + #[doc = ""] + #[doc = "Arguments:"] + #[doc = ""] + #[doc = "- `target_system_chain`: A system chain, `ParaId`."] + #[doc = ""] + #[doc = "The origin needs to be the parachain origin."] + pub fn establish_channel_with_system( + &self, + target_system_chain: types::establish_channel_with_system::TargetSystemChain, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::EstablishChannelWithSystem, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Hrmp", + "establish_channel_with_system", + types::EstablishChannelWithSystem { + target_system_chain, + }, + [ + 97u8, 88u8, 72u8, 195u8, 37u8, 11u8, 77u8, 206u8, 254u8, 81u8, 104u8, + 73u8, 220u8, 240u8, 187u8, 154u8, 131u8, 146u8, 128u8, 116u8, 223u8, + 35u8, 105u8, 236u8, 208u8, 99u8, 233u8, 74u8, 115u8, 166u8, 5u8, 205u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -34741,7 +40066,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "An HRMP channel was opened between two system chains."] + #[doc = "An HRMP channel was opened with a system chain."] pub struct HrmpSystemChannelOpened { pub sender: hrmp_system_channel_opened::Sender, pub recipient: hrmp_system_channel_opened::Recipient, @@ -35486,7 +40811,7 @@ pub mod api { pub mod assignment_keys_unsafe { use super::runtime_types; pub type AssignmentKeysUnsafe = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::assignment_app::Public, + runtime_types::polkadot_primitives::v7::assignment_app::Public, >; } pub mod earliest_stored_session { @@ -35495,7 +40820,7 @@ pub mod api { } pub mod sessions { use super::runtime_types; - pub type Sessions = runtime_types::polkadot_primitives::v6::SessionInfo; + pub type Sessions = runtime_types::polkadot_primitives::v7::SessionInfo; pub type Param0 = ::core::primitive::u32; } pub mod account_keys { @@ -35508,7 +40833,7 @@ pub mod api { pub mod session_executor_params { use super::runtime_types; pub type SessionExecutorParams = - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams; + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParams; pub type Param0 = ::core::primitive::u32; } } @@ -35531,9 +40856,10 @@ pub mod api { "AssignmentKeysUnsafe", (), [ - 51u8, 155u8, 91u8, 101u8, 118u8, 243u8, 134u8, 138u8, 147u8, 59u8, - 195u8, 186u8, 54u8, 187u8, 36u8, 14u8, 91u8, 141u8, 60u8, 139u8, 28u8, - 74u8, 111u8, 232u8, 198u8, 229u8, 61u8, 63u8, 72u8, 214u8, 152u8, 2u8, + 180u8, 187u8, 151u8, 97u8, 28u8, 143u8, 44u8, 107u8, 127u8, 16u8, 82u8, + 208u8, 210u8, 99u8, 211u8, 54u8, 252u8, 164u8, 138u8, 142u8, 124u8, + 117u8, 217u8, 184u8, 223u8, 65u8, 45u8, 143u8, 220u8, 212u8, 254u8, + 173u8, ], ) } @@ -35575,10 +40901,10 @@ pub mod api { "Sessions", (), [ - 254u8, 40u8, 169u8, 18u8, 252u8, 203u8, 49u8, 182u8, 123u8, 19u8, - 241u8, 150u8, 227u8, 153u8, 108u8, 109u8, 66u8, 129u8, 157u8, 27u8, - 130u8, 215u8, 105u8, 18u8, 163u8, 72u8, 182u8, 243u8, 31u8, 157u8, - 103u8, 111u8, + 234u8, 87u8, 239u8, 243u8, 224u8, 177u8, 208u8, 208u8, 80u8, 111u8, + 190u8, 108u8, 189u8, 81u8, 68u8, 30u8, 108u8, 83u8, 43u8, 150u8, 87u8, + 156u8, 68u8, 231u8, 151u8, 67u8, 26u8, 223u8, 218u8, 137u8, 229u8, + 228u8, ], ) } @@ -35604,10 +40930,10 @@ pub mod api { _0.borrow(), ), [ - 254u8, 40u8, 169u8, 18u8, 252u8, 203u8, 49u8, 182u8, 123u8, 19u8, - 241u8, 150u8, 227u8, 153u8, 108u8, 109u8, 66u8, 129u8, 157u8, 27u8, - 130u8, 215u8, 105u8, 18u8, 163u8, 72u8, 182u8, 243u8, 31u8, 157u8, - 103u8, 111u8, + 234u8, 87u8, 239u8, 243u8, 224u8, 177u8, 208u8, 208u8, 80u8, 111u8, + 190u8, 108u8, 189u8, 81u8, 68u8, 30u8, 108u8, 83u8, 43u8, 150u8, 87u8, + 156u8, 68u8, 231u8, 151u8, 67u8, 26u8, 223u8, 218u8, 137u8, 229u8, + 228u8, ], ) } @@ -35675,10 +41001,9 @@ pub mod api { "SessionExecutorParams", (), [ - 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, ], ) } @@ -35702,10 +41027,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, ], ) } @@ -35739,7 +41063,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_unfreeze`]."] pub struct ForceUnfreeze; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ForceUnfreeze { const PALLET: &'static str = "ParasDisputes"; @@ -35748,7 +41071,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_unfreeze`]."] pub fn force_unfreeze( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -35855,7 +41177,7 @@ pub mod api { } pub mod disputes { use super::runtime_types; - pub type Disputes = runtime_types::polkadot_primitives::v6::DisputeState< + pub type Disputes = runtime_types::polkadot_primitives::v7::DisputeState< ::core::primitive::u32, >; pub type Param0 = ::core::primitive::u32; @@ -35864,7 +41186,7 @@ pub mod api { pub mod backers_on_disputes { use super::runtime_types; pub type BackersOnDisputes = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >; pub type Param0 = ::core::primitive::u32; pub type Param1 = runtime_types::polkadot_core_primitives::CandidateHash; @@ -36228,7 +41550,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::report_dispute_lost_unsigned`]."] pub struct ReportDisputeLostUnsigned { pub dispute_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< report_dispute_lost_unsigned::DisputeProof, @@ -36238,7 +41559,7 @@ pub mod api { pub mod report_dispute_lost_unsigned { use super::runtime_types; pub type DisputeProof = - runtime_types::polkadot_primitives::v6::slashing::DisputeProof; + runtime_types::polkadot_primitives::v7::slashing::DisputeProof; pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportDisputeLostUnsigned { @@ -36248,7 +41569,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::report_dispute_lost_unsigned`]."] pub fn report_dispute_lost_unsigned( &self, dispute_proof: types::report_dispute_lost_unsigned::DisputeProof, @@ -36266,10 +41586,9 @@ pub mod api { key_owner_proof, }, [ - 57u8, 99u8, 246u8, 126u8, 203u8, 239u8, 64u8, 182u8, 167u8, 204u8, - 96u8, 221u8, 126u8, 94u8, 254u8, 210u8, 18u8, 182u8, 207u8, 32u8, - 250u8, 249u8, 116u8, 156u8, 210u8, 63u8, 254u8, 74u8, 86u8, 101u8, - 28u8, 229u8, + 18u8, 73u8, 202u8, 17u8, 170u8, 157u8, 84u8, 74u8, 185u8, 45u8, 77u8, + 154u8, 79u8, 108u8, 36u8, 247u8, 125u8, 6u8, 170u8, 179u8, 64u8, 149u8, + 201u8, 138u8, 74u8, 148u8, 37u8, 120u8, 235u8, 220u8, 214u8, 95u8, ], ) } @@ -36282,7 +41601,7 @@ pub mod api { pub mod unapplied_slashes { use super::runtime_types; pub type UnappliedSlashes = - runtime_types::polkadot_primitives::v6::slashing::PendingSlashes; + runtime_types::polkadot_primitives::v7::slashing::PendingSlashes; pub type Param0 = ::core::primitive::u32; pub type Param1 = runtime_types::polkadot_core_primitives::CandidateHash; } @@ -36309,10 +41628,10 @@ pub mod api { "UnappliedSlashes", (), [ - 114u8, 171u8, 137u8, 142u8, 180u8, 125u8, 226u8, 240u8, 99u8, 181u8, - 68u8, 221u8, 91u8, 124u8, 172u8, 93u8, 103u8, 12u8, 95u8, 43u8, 67u8, - 59u8, 29u8, 133u8, 140u8, 17u8, 141u8, 228u8, 145u8, 201u8, 82u8, - 126u8, + 139u8, 156u8, 52u8, 31u8, 151u8, 223u8, 139u8, 230u8, 222u8, 217u8, + 12u8, 49u8, 83u8, 192u8, 23u8, 89u8, 204u8, 185u8, 212u8, 185u8, 176u8, + 49u8, 91u8, 206u8, 184u8, 98u8, 65u8, 151u8, 246u8, 128u8, 149u8, + 186u8, ], ) } @@ -36336,10 +41655,10 @@ pub mod api { _0.borrow(), ), [ - 114u8, 171u8, 137u8, 142u8, 180u8, 125u8, 226u8, 240u8, 99u8, 181u8, - 68u8, 221u8, 91u8, 124u8, 172u8, 93u8, 103u8, 12u8, 95u8, 43u8, 67u8, - 59u8, 29u8, 133u8, 140u8, 17u8, 141u8, 228u8, 145u8, 201u8, 82u8, - 126u8, + 139u8, 156u8, 52u8, 31u8, 151u8, 223u8, 139u8, 230u8, 222u8, 217u8, + 12u8, 49u8, 83u8, 192u8, 23u8, 89u8, 204u8, 185u8, 212u8, 185u8, 176u8, + 49u8, 91u8, 206u8, 184u8, 98u8, 65u8, 151u8, 246u8, 128u8, 149u8, + 186u8, ], ) } @@ -36374,10 +41693,10 @@ pub mod api { ), ), [ - 114u8, 171u8, 137u8, 142u8, 180u8, 125u8, 226u8, 240u8, 99u8, 181u8, - 68u8, 221u8, 91u8, 124u8, 172u8, 93u8, 103u8, 12u8, 95u8, 43u8, 67u8, - 59u8, 29u8, 133u8, 140u8, 17u8, 141u8, 228u8, 145u8, 201u8, 82u8, - 126u8, + 139u8, 156u8, 52u8, 31u8, 151u8, 223u8, 139u8, 230u8, 222u8, 217u8, + 12u8, 49u8, 83u8, 192u8, 23u8, 89u8, 204u8, 185u8, 212u8, 185u8, 176u8, + 49u8, 91u8, 206u8, 184u8, 98u8, 65u8, 151u8, 246u8, 128u8, 149u8, + 186u8, ], ) } @@ -36458,7 +41777,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reap_page`]."] + #[doc = "Remove a page which has no more messages remaining to be processed or is stale."] pub struct ReapPage { pub message_origin: reap_page::MessageOrigin, pub page_index: reap_page::PageIndex, @@ -36486,7 +41805,19 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::execute_overweight`]."] + #[doc = "Execute an overweight message."] + #[doc = ""] + #[doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] + #[doc = "as success condition."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `message_origin`: The origin from which the message to be executed arrived."] + #[doc = "- `page`: The page in the queue in which the message to be executed is sitting."] + #[doc = "- `index`: The index into the queue of the message to be executed."] + #[doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] + #[doc = " of the message."] + #[doc = ""] + #[doc = "Benchmark complexity considerations: O(index + weight_limit)."] pub struct ExecuteOverweight { pub message_origin: execute_overweight::MessageOrigin, pub page: execute_overweight::Page, @@ -36507,7 +41838,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::reap_page`]."] + #[doc = "Remove a page which has no more messages remaining to be processed or is stale."] pub fn reap_page( &self, message_origin: types::reap_page::MessageOrigin, @@ -36528,7 +41859,19 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::execute_overweight`]."] + #[doc = "Execute an overweight message."] + #[doc = ""] + #[doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] + #[doc = "as success condition."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `message_origin`: The origin from which the message to be executed arrived."] + #[doc = "- `page`: The page in the queue in which the message to be executed is sitting."] + #[doc = "- `index`: The index into the queue of the message to be executed."] + #[doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] + #[doc = " of the message."] + #[doc = ""] + #[doc = "Benchmark complexity considerations: O(index + weight_limit)."] pub fn execute_overweight( &self, message_origin: types::execute_overweight::MessageOrigin, @@ -36578,7 +41921,7 @@ pub mod api { } pub mod processing_failed { use super::runtime_types; - pub type Id = [::core::primitive::u8; 32usize]; + pub type Id = ::subxt::ext::subxt_core::utils::H256; pub type Origin = runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin; pub type Error = @@ -36607,7 +41950,7 @@ pub mod api { } pub mod processed { use super::runtime_types; - pub type Id = [::core::primitive::u8; 32usize]; + pub type Id = ::subxt::ext::subxt_core::utils::H256; pub type Origin = runtime_types::polkadot_runtime_parachains::inclusion::AggregateMessageOrigin; pub type WeightUsed = runtime_types::sp_weights::weight_v2::Weight; @@ -36900,10 +42243,11 @@ pub mod api { ) } #[doc = " The amount of weight (if any) which should be provided to the message queue for"] - #[doc = " servicing enqueued items."] + #[doc = " servicing enqueued items `on_initialize`."] #[doc = ""] #[doc = " This may be legitimately `None` in the case that you will call"] - #[doc = " `ServiceQueues::service_queues` manually."] + #[doc = " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have"] + #[doc = " it run in `on_idle`."] pub fn service_weight( &self, ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< @@ -36919,21 +42263,29 @@ pub mod api { ], ) } + #[doc = " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which"] + #[doc = " should be provided to the message queue for servicing enqueued items `on_idle`."] + #[doc = " Useful for parachains to process messages at the same block they are received."] + #[doc = ""] + #[doc = " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`."] + pub fn idle_max_service_weight( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::option::Option, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "MessageQueue", + "IdleMaxServiceWeight", + [ + 204u8, 140u8, 63u8, 167u8, 49u8, 8u8, 148u8, 163u8, 190u8, 224u8, 15u8, + 103u8, 86u8, 153u8, 248u8, 117u8, 223u8, 117u8, 210u8, 80u8, 205u8, + 155u8, 40u8, 11u8, 59u8, 63u8, 129u8, 156u8, 17u8, 83u8, 177u8, 250u8, + ], + ) + } } } } - 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; @@ -36963,7 +42315,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_order_allow_death`]."] + #[doc = "Create a single on demand core order."] + #[doc = "Will use the spot price for the current block and will reap the account if needed."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] pub struct PlaceOrderAllowDeath { pub max_amount: place_order_allow_death::MaxAmount, pub para_id: place_order_allow_death::ParaId, @@ -36991,7 +42358,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::place_order_keep_alive`]."] + #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"] + #[doc = "check that placing the order will not reap the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] pub struct PlaceOrderKeepAlive { pub max_amount: place_order_keep_alive::MaxAmount, pub para_id: place_order_keep_alive::ParaId, @@ -37008,7 +42390,22 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::place_order_allow_death`]."] + #[doc = "Create a single on demand core order."] + #[doc = "Will use the spot price for the current block and will reap the account if needed."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] pub fn place_order_allow_death( &self, max_amount: types::place_order_allow_death::MaxAmount, @@ -37030,7 +42427,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::place_order_keep_alive`]."] + #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"] + #[doc = "check that placing the order will not reap the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] pub fn place_order_keep_alive( &self, max_amount: types::place_order_keep_alive::MaxAmount, @@ -37109,69 +42521,27 @@ pub mod api { use super::runtime_types; pub mod types { use super::runtime_types; - pub mod spot_traffic { - use super::runtime_types; - pub type SpotTraffic = runtime_types::sp_arithmetic::fixed_point::FixedU128; - } - pub mod on_demand_queue { - use super::runtime_types; - pub type OnDemandQueue = ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_runtime_parachains::scheduler::common::Assignment, - >; - } pub mod para_id_affinity { use super::runtime_types; pub type ParaIdAffinity = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: CoreAffinityCount ; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } + pub mod queue_status { + use super::runtime_types; + pub type QueueStatus = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueStatusType ; + } + pub mod free_entries { + use super::runtime_types; + pub type FreeEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: EnqueuedOrder > ; + } + pub mod affinity_entries { + use super::runtime_types; + pub type AffinityEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: EnqueuedOrder > ; + pub type Param0 = runtime_types::polkadot_primitives::v7::CoreIndex; + } } pub struct StorageApi; impl StorageApi { - #[doc = " Keeps track of the multiplier used to calculate the current spot price for the on demand"] - #[doc = " assigner."] - pub fn spot_traffic( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::spot_traffic::SpotTraffic, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "OnDemandAssignmentProvider", - "SpotTraffic", - (), - [ - 8u8, 236u8, 233u8, 156u8, 211u8, 45u8, 192u8, 58u8, 108u8, 247u8, 47u8, - 97u8, 229u8, 26u8, 188u8, 67u8, 98u8, 43u8, 11u8, 11u8, 1u8, 127u8, - 15u8, 75u8, 25u8, 19u8, 220u8, 16u8, 121u8, 223u8, 207u8, 226u8, - ], - ) - } - #[doc = " The order storage entry. Uses a VecDeque to be able to push to the front of the"] - #[doc = " queue from the scheduler on session boundaries."] - pub fn on_demand_queue( - &self, - ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), - types::on_demand_queue::OnDemandQueue, - ::subxt::ext::subxt_core::utils::Yes, - ::subxt::ext::subxt_core::utils::Yes, - (), - > { - ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( - "OnDemandAssignmentProvider", - "OnDemandQueue", - (), - [ - 241u8, 10u8, 89u8, 240u8, 227u8, 90u8, 218u8, 35u8, 80u8, 244u8, 219u8, - 112u8, 177u8, 143u8, 43u8, 228u8, 224u8, 165u8, 217u8, 65u8, 17u8, - 182u8, 61u8, 173u8, 214u8, 140u8, 224u8, 68u8, 68u8, 226u8, 208u8, - 156u8, - ], - ) - } #[doc = " Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in"] #[doc = " it's lookahead. Keeping track of this affinity prevents parallel execution of the same"] #[doc = " `ParaId` on two or more `CoreIndex`es."] @@ -37189,9 +42559,10 @@ pub mod api { "ParaIdAffinity", (), [ - 145u8, 117u8, 2u8, 170u8, 99u8, 68u8, 166u8, 236u8, 247u8, 80u8, 202u8, - 87u8, 116u8, 244u8, 218u8, 172u8, 41u8, 187u8, 170u8, 163u8, 187u8, - 13u8, 9u8, 19u8, 55u8, 167u8, 67u8, 30u8, 57u8, 162u8, 226u8, 65u8, + 84u8, 171u8, 103u8, 180u8, 176u8, 210u8, 232u8, 184u8, 221u8, 129u8, + 174u8, 253u8, 250u8, 168u8, 2u8, 250u8, 105u8, 143u8, 120u8, 204u8, + 30u8, 242u8, 151u8, 44u8, 48u8, 150u8, 81u8, 194u8, 191u8, 91u8, 29u8, + 46u8, ], ) } @@ -37202,7 +42573,9 @@ pub mod api { &self, _0: impl ::core::borrow::Borrow, ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< - (), + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::para_id_affinity::Param0, + >, types::para_id_affinity::ParaIdAffinity, ::subxt::ext::subxt_core::utils::Yes, (), @@ -37211,11 +42584,106 @@ pub mod api { ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( "OnDemandAssignmentProvider", "ParaIdAffinity", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 84u8, 171u8, 103u8, 180u8, 176u8, 210u8, 232u8, 184u8, 221u8, 129u8, + 174u8, 253u8, 250u8, 168u8, 2u8, 250u8, 105u8, 143u8, 120u8, 204u8, + 30u8, 242u8, 151u8, 44u8, 48u8, 150u8, 81u8, 194u8, 191u8, 91u8, 29u8, + 46u8, + ], + ) + } + #[doc = " Overall status of queue (both free + affinity entries)"] + pub fn queue_status( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::queue_status::QueueStatus, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "QueueStatus", (), [ - 145u8, 117u8, 2u8, 170u8, 99u8, 68u8, 166u8, 236u8, 247u8, 80u8, 202u8, - 87u8, 116u8, 244u8, 218u8, 172u8, 41u8, 187u8, 170u8, 163u8, 187u8, - 13u8, 9u8, 19u8, 55u8, 167u8, 67u8, 30u8, 57u8, 162u8, 226u8, 65u8, + 44u8, 67u8, 88u8, 179u8, 0u8, 178u8, 233u8, 101u8, 156u8, 215u8, 99u8, + 242u8, 236u8, 2u8, 153u8, 32u8, 214u8, 247u8, 193u8, 234u8, 194u8, + 30u8, 182u8, 151u8, 18u8, 121u8, 208u8, 146u8, 231u8, 6u8, 162u8, 20u8, + ], + ) + } + #[doc = " Priority queue for all orders which don't yet (or not any more) have any core affinity."] + pub fn free_entries( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::free_entries::FreeEntries, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "FreeEntries", + (), + [ + 229u8, 190u8, 235u8, 140u8, 35u8, 221u8, 62u8, 119u8, 131u8, 211u8, + 177u8, 218u8, 84u8, 132u8, 135u8, 118u8, 138u8, 227u8, 186u8, 52u8, + 102u8, 190u8, 155u8, 123u8, 232u8, 136u8, 97u8, 203u8, 55u8, 113u8, + 194u8, 7u8, + ], + ) + } + #[doc = " Queue entries that are currently bound to a particular core due to core affinity."] + pub fn affinity_entries_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::affinity_entries::AffinityEntries, + (), + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "AffinityEntries", + (), + [ + 130u8, 236u8, 62u8, 133u8, 71u8, 121u8, 51u8, 37u8, 27u8, 240u8, 134u8, + 28u8, 221u8, 211u8, 28u8, 182u8, 222u8, 220u8, 249u8, 227u8, 2u8, + 124u8, 71u8, 252u8, 208u8, 36u8, 219u8, 147u8, 235u8, 254u8, 36u8, + 90u8, + ], + ) + } + #[doc = " Queue entries that are currently bound to a particular core due to core affinity."] + pub fn affinity_entries( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::affinity_entries::Param0, + >, + types::affinity_entries::AffinityEntries, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "AffinityEntries", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 130u8, 236u8, 62u8, 133u8, 71u8, 121u8, 51u8, 37u8, 27u8, 240u8, 134u8, + 28u8, 221u8, 211u8, 28u8, 182u8, 222u8, 220u8, 249u8, 227u8, 2u8, + 124u8, 71u8, 252u8, 208u8, 36u8, 219u8, 147u8, 235u8, 254u8, 36u8, + 90u8, ], ) } @@ -37245,9 +42713,159 @@ pub mod api { } } } - pub mod parachains_assignment_provider { + 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::v7::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::v7::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::ext::subxt_core::storage::address::StaticAddress< + (), + types::core_schedules::CoreSchedules, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + (), + [ + 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 ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::core_schedules::CoreSchedules, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + (), + [ + 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 ::core::borrow::Borrow, + _1: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ((), ()), + types::core_schedules::CoreSchedules, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreSchedules", + ((), ()), + [ + 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::ext::subxt_core::storage::address::StaticAddress< + (), + types::core_descriptors::CoreDescriptors, + (), + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreDescriptors", + (), + [ + 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 ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::core_descriptors::CoreDescriptors, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "CoretimeAssignmentProvider", + "CoreDescriptors", + (), + [ + 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; @@ -37276,7 +42894,26 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::register`]."] + #[doc = "Register head data and validation code for a reserved Para Id."] + #[doc = ""] + #[doc = "## Arguments"] + #[doc = "- `origin`: Must be called by a `Signed` origin."] + #[doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."] + #[doc = "- `genesis_head`: The genesis head data of the parachain/thread."] + #[doc = "- `validation_code`: The initial validation code of the parachain/thread."] + #[doc = ""] + #[doc = "## Deposits/Fees"] + #[doc = "The account with the originating signature must reserve a deposit."] + #[doc = ""] + #[doc = "The deposit is required to cover the costs associated with storing the genesis head"] + #[doc = "data and the validation code."] + #[doc = "This accounts for the potential to store validation code of a size up to the"] + #[doc = "`max_code_size`, as defined in the configuration pallet"] + #[doc = ""] + #[doc = "Anything already reserved previously for this para ID is accounted for."] + #[doc = ""] + #[doc = "## Events"] + #[doc = "The `Registered` event is emitted in case of success."] pub struct Register { pub id: register::Id, pub genesis_head: register::GenesisHead, @@ -37308,7 +42945,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_register`]."] + #[doc = "Force the registration of a Para Id on the relay chain."] + #[doc = ""] + #[doc = "This function must be called by a Root origin."] + #[doc = ""] + #[doc = "The deposit taken can be specified for this registration. Any `ParaId`"] + #[doc = "can be registered, including sub-1000 IDs which are System Parachains."] pub struct ForceRegister { pub who: force_register::Who, pub deposit: force_register::Deposit, @@ -37344,7 +42986,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::deregister`]."] + #[doc = "Deregister a Para Id, freeing all data and returning any deposit."] + #[doc = ""] + #[doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"] + #[doc = "on-demand parachain."] pub struct Deregister { pub id: deregister::Id, } @@ -37370,7 +43015,18 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::swap`]."] + #[doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"] + #[doc = "holding."] + #[doc = ""] + #[doc = "The origin must be Root, the `para` owner, or the `para` itself."] + #[doc = ""] + #[doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"] + #[doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."] + #[doc = ""] + #[doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"] + #[doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"] + #[doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"] + #[doc = "parachain), auction information and the auction deposit are switched."] pub struct Swap { pub id: swap::Id, pub other: swap::Other, @@ -37398,7 +43054,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::remove_lock`]."] + #[doc = "Remove a manager lock from a para. This will allow the manager of a"] + #[doc = "previously locked para to deregister or swap a para without using governance."] + #[doc = ""] + #[doc = "Can only be called by the Root origin or the parachain."] pub struct RemoveLock { pub para: remove_lock::Para, } @@ -37424,7 +43083,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reserve`]."] + #[doc = "Reserve a Para Id on the relay chain."] + #[doc = ""] + #[doc = "This function will reserve a new Para Id to be owned/managed by the origin account."] + #[doc = "The origin account is able to register head data and validation code using `register` to"] + #[doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"] + #[doc = "be upgraded to a lease holding parachain."] + #[doc = ""] + #[doc = "## Arguments"] + #[doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"] + #[doc = " para ID."] + #[doc = ""] + #[doc = "## Deposits/Fees"] + #[doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."] + #[doc = ""] + #[doc = "## Events"] + #[doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"] + #[doc = "use."] pub struct Reserve; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Reserve { const PALLET: &'static str = "Registrar"; @@ -37444,7 +43119,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_lock`]."] + #[doc = "Add a manager lock from a para. This will prevent the manager of a"] + #[doc = "para to deregister or swap a para."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub struct AddLock { pub para: add_lock::Para, } @@ -37470,7 +43149,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::schedule_code_upgrade`]."] + #[doc = "Schedule a parachain upgrade."] + #[doc = ""] + #[doc = "This will kick off a check of `new_code` by all validators. After the majority of the"] + #[doc = "validators have reported on the validity of the code, the code will either be enacted"] + #[doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"] + #[doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"] + #[doc = "new code. The parachain itself will not be informed explicitly that the validation code"] + #[doc = "has changed."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub struct ScheduleCodeUpgrade { pub para: schedule_code_upgrade::Para, pub new_code: schedule_code_upgrade::NewCode, @@ -37499,7 +43188,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_current_head`]."] + #[doc = "Set the parachain's current head."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub struct SetCurrentHead { pub para: set_current_head::Para, pub new_head: set_current_head::NewHead, @@ -37517,7 +43209,26 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::register`]."] + #[doc = "Register head data and validation code for a reserved Para Id."] + #[doc = ""] + #[doc = "## Arguments"] + #[doc = "- `origin`: Must be called by a `Signed` origin."] + #[doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."] + #[doc = "- `genesis_head`: The genesis head data of the parachain/thread."] + #[doc = "- `validation_code`: The initial validation code of the parachain/thread."] + #[doc = ""] + #[doc = "## Deposits/Fees"] + #[doc = "The account with the originating signature must reserve a deposit."] + #[doc = ""] + #[doc = "The deposit is required to cover the costs associated with storing the genesis head"] + #[doc = "data and the validation code."] + #[doc = "This accounts for the potential to store validation code of a size up to the"] + #[doc = "`max_code_size`, as defined in the configuration pallet"] + #[doc = ""] + #[doc = "Anything already reserved previously for this para ID is accounted for."] + #[doc = ""] + #[doc = "## Events"] + #[doc = "The `Registered` event is emitted in case of success."] pub fn register( &self, id: types::register::Id, @@ -37540,7 +43251,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_register`]."] + #[doc = "Force the registration of a Para Id on the relay chain."] + #[doc = ""] + #[doc = "This function must be called by a Root origin."] + #[doc = ""] + #[doc = "The deposit taken can be specified for this registration. Any `ParaId`"] + #[doc = "can be registered, including sub-1000 IDs which are System Parachains."] pub fn force_register( &self, who: types::force_register::Who, @@ -37568,7 +43284,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::deregister`]."] + #[doc = "Deregister a Para Id, freeing all data and returning any deposit."] + #[doc = ""] + #[doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"] + #[doc = "on-demand parachain."] pub fn deregister( &self, id: types::deregister::Id, @@ -37585,7 +43304,18 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::swap`]."] + #[doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"] + #[doc = "holding."] + #[doc = ""] + #[doc = "The origin must be Root, the `para` owner, or the `para` itself."] + #[doc = ""] + #[doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"] + #[doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."] + #[doc = ""] + #[doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"] + #[doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"] + #[doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"] + #[doc = "parachain), auction information and the auction deposit are switched."] pub fn swap( &self, id: types::swap::Id, @@ -37604,7 +43334,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::remove_lock`]."] + #[doc = "Remove a manager lock from a para. This will allow the manager of a"] + #[doc = "previously locked para to deregister or swap a para without using governance."] + #[doc = ""] + #[doc = "Can only be called by the Root origin or the parachain."] pub fn remove_lock( &self, para: types::remove_lock::Para, @@ -37621,7 +43354,23 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::reserve`]."] + #[doc = "Reserve a Para Id on the relay chain."] + #[doc = ""] + #[doc = "This function will reserve a new Para Id to be owned/managed by the origin account."] + #[doc = "The origin account is able to register head data and validation code using `register` to"] + #[doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"] + #[doc = "be upgraded to a lease holding parachain."] + #[doc = ""] + #[doc = "## Arguments"] + #[doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"] + #[doc = " para ID."] + #[doc = ""] + #[doc = "## Deposits/Fees"] + #[doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."] + #[doc = ""] + #[doc = "## Events"] + #[doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"] + #[doc = "use."] pub fn reserve( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -37637,7 +43386,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::add_lock`]."] + #[doc = "Add a manager lock from a para. This will prevent the manager of a"] + #[doc = "para to deregister or swap a para."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub fn add_lock( &self, para: types::add_lock::Para, @@ -37654,7 +43407,17 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::schedule_code_upgrade`]."] + #[doc = "Schedule a parachain upgrade."] + #[doc = ""] + #[doc = "This will kick off a check of `new_code` by all validators. After the majority of the"] + #[doc = "validators have reported on the validity of the code, the code will either be enacted"] + #[doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"] + #[doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"] + #[doc = "new code. The parachain itself will not be informed explicitly that the validation code"] + #[doc = "has changed."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub fn schedule_code_upgrade( &self, para: types::schedule_code_upgrade::Para, @@ -37673,7 +43436,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_current_head`]."] + #[doc = "Set the parachain's current head."] + #[doc = ""] + #[doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] + #[doc = "unlocked."] pub fn set_current_head( &self, para: types::set_current_head::Para, @@ -38009,7 +43775,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_lease`]."] + #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"] + #[doc = "happen independently of any other on-chain mechanism to use it."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] pub struct ForceLease { pub para: force_lease::Para, pub leaser: force_lease::Leaser, @@ -38043,7 +43812,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::clear_all_leases`]."] + #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] pub struct ClearAllLeases { pub para: clear_all_leases::Para, } @@ -38069,7 +43840,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::trigger_onboard`]."] + #[doc = "Try to onboard a parachain that has a lease for the current lease period."] + #[doc = ""] + #[doc = "This function can be useful if there was some state issue with a para that should"] + #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"] + #[doc = "let them onboard from here."] + #[doc = ""] + #[doc = "Origin must be signed, but can be called by anyone."] pub struct TriggerOnboard { pub para: trigger_onboard::Para, } @@ -38084,7 +43861,10 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::force_lease`]."] + #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"] + #[doc = "happen independently of any other on-chain mechanism to use it."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] pub fn force_lease( &self, para: types::force_lease::Para, @@ -38112,7 +43892,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::clear_all_leases`]."] + #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] pub fn clear_all_leases( &self, para: types::clear_all_leases::Para, @@ -38129,7 +43911,13 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::trigger_onboard`]."] + #[doc = "Try to onboard a parachain that has a lease for the current lease period."] + #[doc = ""] + #[doc = "This function can be useful if there was some state issue with a para that should"] + #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"] + #[doc = "let them onboard from here."] + #[doc = ""] + #[doc = "Origin must be signed, but can be called by anyone."] pub fn trigger_onboard( &self, para: types::trigger_onboard::Para, @@ -38375,7 +44163,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::new_auction`]."] + #[doc = "Create a new auction."] + #[doc = ""] + #[doc = "This can only happen when there isn't already an auction in progress and may only be"] + #[doc = "called by the root origin. Accepts the `duration` of this auction and the"] + #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."] pub struct NewAuction { #[codec(compact)] pub duration: new_auction::Duration, @@ -38405,7 +44197,22 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::bid`]."] + #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"] + #[doc = "parachain."] + #[doc = ""] + #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"] + #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."] + #[doc = ""] + #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"] + #[doc = "funded by) the same account."] + #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"] + #[doc = "value of `AuctionCounter`."] + #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"] + #[doc = "bid win. This amount is held throughout the range."] pub struct Bid { #[codec(compact)] pub para: bid::Para, @@ -38444,7 +44251,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::cancel_auction`]."] + #[doc = "Cancel an in-progress auction."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] pub struct CancelAuction; impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for CancelAuction { const PALLET: &'static str = "Auctions"; @@ -38453,7 +44262,11 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::new_auction`]."] + #[doc = "Create a new auction."] + #[doc = ""] + #[doc = "This can only happen when there isn't already an auction in progress and may only be"] + #[doc = "called by the root origin. Accepts the `duration` of this auction and the"] + #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."] pub fn new_auction( &self, duration: types::new_auction::Duration, @@ -38475,7 +44288,22 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::bid`]."] + #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"] + #[doc = "parachain."] + #[doc = ""] + #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"] + #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."] + #[doc = ""] + #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"] + #[doc = "funded by) the same account."] + #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"] + #[doc = "value of `AuctionCounter`."] + #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"] + #[doc = "bid win. This amount is held throughout the range."] pub fn bid( &self, para: types::bid::Para, @@ -38502,7 +44330,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::cancel_auction`]."] + #[doc = "Cancel an in-progress auction."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] pub fn cancel_auction( &self, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload @@ -39028,7 +44858,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::create`]."] + #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"] + #[doc = "range."] + #[doc = ""] + #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"] + #[doc = "by the parachain manager."] pub struct Create { #[codec(compact)] pub index: create::Index, @@ -39070,7 +44904,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::contribute`]."] + #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"] + #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."] pub struct Contribute { #[codec(compact)] pub index: contribute::Index, @@ -39103,7 +44938,23 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::withdraw`]."] + #[doc = "Withdraw full balance of a specific contributor."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] + #[doc = ""] + #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"] + #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"] + #[doc = "- it must not already be in retirement;"] + #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"] + #[doc = "- and either:"] + #[doc = " - the block number must be at least `end`; or"] + #[doc = " - the current lease period must be greater than the fund's `last_period`."] + #[doc = ""] + #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"] + #[doc = "block number."] + #[doc = ""] + #[doc = "- `who`: The account whose contribution should be withdrawn."] + #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."] pub struct Withdraw { pub who: withdraw::Who, #[codec(compact)] @@ -39132,7 +44983,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::refund`]."] + #[doc = "Automatically refund contributors of an ended crowdloan."] + #[doc = "Due to weight restrictions, this function may need to be called multiple"] + #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] pub struct Refund { #[codec(compact)] pub index: refund::Index, @@ -39159,7 +45014,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."] pub struct Dissolve { #[codec(compact)] pub index: dissolve::Index, @@ -39186,7 +45041,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::edit`]."] + #[doc = "Edit the configuration for an in-progress crowdloan."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] pub struct Edit { #[codec(compact)] pub index: edit::Index, @@ -39228,7 +45085,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::add_memo`]."] + #[doc = "Add an optional memo to an existing crowdloan contribution."] + #[doc = ""] + #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."] pub struct AddMemo { pub index: add_memo::Index, pub memo: add_memo::Memo, @@ -39257,7 +45116,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::poke`]."] + #[doc = "Poke the fund into `NewRaise`"] + #[doc = ""] + #[doc = "Origin must be Signed, and the fund has non-zero raise."] pub struct Poke { pub index: poke::Index, } @@ -39283,7 +45144,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::contribute_all`]."] + #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"] + #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"] + #[doc = "ended and the funds are unused."] pub struct ContributeAll { #[codec(compact)] pub index: contribute_all::Index, @@ -39302,7 +45165,11 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::create`]."] + #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"] + #[doc = "range."] + #[doc = ""] + #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"] + #[doc = "by the parachain manager."] pub fn create( &self, index: types::create::Index, @@ -39325,13 +45192,15 @@ pub mod api { verifier, }, [ - 236u8, 3u8, 248u8, 168u8, 136u8, 216u8, 20u8, 58u8, 179u8, 13u8, 184u8, - 73u8, 105u8, 35u8, 167u8, 66u8, 117u8, 195u8, 41u8, 41u8, 117u8, 176u8, - 65u8, 18u8, 225u8, 66u8, 2u8, 61u8, 212u8, 92u8, 117u8, 90u8, + 93u8, 62u8, 50u8, 153u8, 231u8, 103u8, 233u8, 109u8, 182u8, 182u8, + 174u8, 247u8, 176u8, 234u8, 224u8, 108u8, 143u8, 213u8, 99u8, 60u8, + 91u8, 209u8, 120u8, 83u8, 54u8, 16u8, 169u8, 156u8, 49u8, 232u8, 228u8, + 89u8, ], ) } - #[doc = "See [`Pallet::contribute`]."] + #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"] + #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."] pub fn contribute( &self, index: types::contribute::Index, @@ -39348,14 +45217,29 @@ pub mod api { signature, }, [ - 186u8, 247u8, 240u8, 7u8, 12u8, 239u8, 39u8, 191u8, 150u8, 219u8, - 137u8, 122u8, 214u8, 61u8, 62u8, 180u8, 229u8, 181u8, 105u8, 190u8, - 228u8, 55u8, 242u8, 70u8, 91u8, 118u8, 143u8, 233u8, 186u8, 231u8, - 207u8, 106u8, + 235u8, 111u8, 40u8, 4u8, 141u8, 19u8, 229u8, 202u8, 158u8, 30u8, 112u8, + 53u8, 113u8, 65u8, 162u8, 226u8, 116u8, 221u8, 118u8, 54u8, 204u8, + 50u8, 23u8, 246u8, 20u8, 245u8, 187u8, 150u8, 142u8, 184u8, 96u8, 84u8, ], ) } - #[doc = "See [`Pallet::withdraw`]."] + #[doc = "Withdraw full balance of a specific contributor."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] + #[doc = ""] + #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"] + #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"] + #[doc = "- it must not already be in retirement;"] + #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"] + #[doc = "- and either:"] + #[doc = " - the block number must be at least `end`; or"] + #[doc = " - the current lease period must be greater than the fund's `last_period`."] + #[doc = ""] + #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"] + #[doc = "block number."] + #[doc = ""] + #[doc = "- `who`: The account whose contribution should be withdrawn."] + #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."] pub fn withdraw( &self, who: types::withdraw::Who, @@ -39373,7 +45257,11 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::refund`]."] + #[doc = "Automatically refund contributors of an ended crowdloan."] + #[doc = "Due to weight restrictions, this function may need to be called multiple"] + #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] pub fn refund( &self, index: types::refund::Index, @@ -39391,7 +45279,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."] pub fn dissolve( &self, index: types::dissolve::Index, @@ -39409,7 +45297,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::edit`]."] + #[doc = "Edit the configuration for an in-progress crowdloan."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] pub fn edit( &self, index: types::edit::Index, @@ -39432,14 +45322,16 @@ pub mod api { verifier, }, [ - 126u8, 29u8, 232u8, 93u8, 94u8, 23u8, 47u8, 217u8, 62u8, 2u8, 161u8, - 31u8, 156u8, 229u8, 109u8, 45u8, 97u8, 101u8, 189u8, 139u8, 40u8, - 238u8, 150u8, 94u8, 145u8, 77u8, 26u8, 153u8, 217u8, 171u8, 48u8, - 195u8, + 185u8, 194u8, 173u8, 141u8, 104u8, 157u8, 104u8, 216u8, 223u8, 189u8, + 184u8, 104u8, 71u8, 177u8, 70u8, 129u8, 207u8, 167u8, 80u8, 247u8, + 149u8, 151u8, 211u8, 119u8, 224u8, 214u8, 214u8, 15u8, 88u8, 116u8, + 191u8, 234u8, ], ) } - #[doc = "See [`Pallet::add_memo`]."] + #[doc = "Add an optional memo to an existing crowdloan contribution."] + #[doc = ""] + #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."] pub fn add_memo( &self, index: types::add_memo::Index, @@ -39458,7 +45350,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::poke`]."] + #[doc = "Poke the fund into `NewRaise`"] + #[doc = ""] + #[doc = "Origin must be Signed, and the fund has non-zero raise."] pub fn poke( &self, index: types::poke::Index, @@ -39476,7 +45370,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::contribute_all`]."] + #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"] + #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"] + #[doc = "ended and the funds are unused."] pub fn contribute_all( &self, index: types::contribute_all::Index, @@ -39488,9 +45384,9 @@ pub mod api { "contribute_all", types::ContributeAll { index, signature }, [ - 233u8, 62u8, 129u8, 168u8, 161u8, 163u8, 78u8, 92u8, 191u8, 239u8, - 61u8, 2u8, 198u8, 246u8, 246u8, 81u8, 32u8, 131u8, 118u8, 170u8, 72u8, - 87u8, 17u8, 26u8, 55u8, 10u8, 146u8, 184u8, 213u8, 200u8, 252u8, 50u8, + 167u8, 206u8, 26u8, 124u8, 97u8, 175u8, 170u8, 30u8, 34u8, 29u8, 1u8, + 189u8, 8u8, 168u8, 108u8, 7u8, 154u8, 248u8, 96u8, 158u8, 15u8, 160u8, + 222u8, 205u8, 143u8, 18u8, 128u8, 215u8, 29u8, 109u8, 158u8, 11u8, ], ) } @@ -39783,10 +45679,10 @@ pub mod api { "Funds", (), [ - 191u8, 255u8, 37u8, 49u8, 246u8, 246u8, 168u8, 178u8, 73u8, 238u8, - 49u8, 76u8, 66u8, 246u8, 207u8, 12u8, 76u8, 233u8, 31u8, 218u8, 132u8, - 236u8, 237u8, 210u8, 116u8, 159u8, 191u8, 89u8, 212u8, 167u8, 61u8, - 41u8, + 201u8, 39u8, 80u8, 58u8, 162u8, 213u8, 138u8, 215u8, 11u8, 6u8, 39u8, + 197u8, 142u8, 151u8, 231u8, 166u8, 255u8, 142u8, 219u8, 116u8, 56u8, + 187u8, 128u8, 11u8, 216u8, 49u8, 95u8, 154u8, 55u8, 241u8, 185u8, + 198u8, ], ) } @@ -39810,10 +45706,10 @@ pub mod api { _0.borrow(), ), [ - 191u8, 255u8, 37u8, 49u8, 246u8, 246u8, 168u8, 178u8, 73u8, 238u8, - 49u8, 76u8, 66u8, 246u8, 207u8, 12u8, 76u8, 233u8, 31u8, 218u8, 132u8, - 236u8, 237u8, 210u8, 116u8, 159u8, 191u8, 89u8, 212u8, 167u8, 61u8, - 41u8, + 201u8, 39u8, 80u8, 58u8, 162u8, 213u8, 138u8, 215u8, 11u8, 6u8, 39u8, + 197u8, 142u8, 151u8, 231u8, 166u8, 255u8, 142u8, 219u8, 116u8, 56u8, + 187u8, 128u8, 11u8, 216u8, 49u8, 95u8, 154u8, 55u8, 241u8, 185u8, + 198u8, ], ) } @@ -39943,6 +45839,227 @@ 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Request the configuration to be updated with the specified number of cores. Warning:"] + #[doc = "Since this only schedules a configuration update, it takes two sessions to come into"] + #[doc = "effect."] + #[doc = ""] + #[doc = "- `origin`: Root or the Coretime Chain"] + #[doc = "- `count`: total number of cores"] + 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::ext::subxt_core::blocks::StaticExtrinsic for RequestCoreCount { + const PALLET: &'static str = "Coretime"; + const CALL: &'static str = "request_core_count"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] + #[doc = "to be used."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain."] + #[doc = "-`core`: The core that should be scheduled."] + #[doc = "-`begin`: The starting blockheight of the instruction."] + #[doc = "-`assignment`: How the blockspace should be utilised."] + #[doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] + 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 = ::subxt::ext::subxt_core::alloc::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::ext::subxt_core::blocks::StaticExtrinsic for AssignCore { + const PALLET: &'static str = "Coretime"; + const CALL: &'static str = "assign_core"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Request the configuration to be updated with the specified number of cores. Warning:"] + #[doc = "Since this only schedules a configuration update, it takes two sessions to come into"] + #[doc = "effect."] + #[doc = ""] + #[doc = "- `origin`: Root or the Coretime Chain"] + #[doc = "- `count`: total number of cores"] + pub fn request_core_count( + &self, + count: types::request_core_count::Count, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] + #[doc = "to be used."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain."] + #[doc = "-`core`: The core that should be scheduled."] + #[doc = "-`begin`: The starting blockheight of the instruction."] + #[doc = "-`assignment`: How the blockspace should be utilised."] + #[doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] + 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::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::events::StaticEvent for RevenueInfoRequested { + const PALLET: &'static str = "Coretime"; + const EVENT: &'static str = "RevenueInfoRequested"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::v7::CoreIndex; + } + impl ::subxt::ext::subxt_core::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 coretime chain."] + pub fn broker_id( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::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; @@ -39970,14 +46087,13 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::send`]."] pub struct Send { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, pub message: ::subxt::ext::subxt_core::alloc::boxed::Box, } 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::VersionedXcm1; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Send { @@ -39998,7 +46114,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::teleport_assets`]."] + #[doc = "Teleport some assets from the local chain to some destination chain."] + #[doc = ""] + #[doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] + #[doc = "with all fees taken as needed from the asset."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` chain."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] pub struct TeleportAssets { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, pub beneficiary: @@ -40009,9 +46142,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::ext::subxt_core::blocks::StaticExtrinsic for TeleportAssets { @@ -40032,7 +46165,36 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::reserve_transfer_assets`]."] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve."] + #[doc = ""] + #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] + #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] + #[doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] + #[doc = " to mint and deposit reserve-based assets to `beneficiary`."] + #[doc = ""] + #[doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] + #[doc = "with all fees taken as needed from the asset."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] pub struct ReserveTransferAssets { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -40046,9 +46208,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::ext::subxt_core::blocks::StaticExtrinsic for ReserveTransferAssets { @@ -40069,7 +46231,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::execute`]."] + #[doc = "Execute an XCM message from a local, signed, origin."] + #[doc = ""] + #[doc = "An event is deposited indicating whether `msg` could be executed completely or only"] + #[doc = "partially."] + #[doc = ""] + #[doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] + #[doc = "the maximum amount of weight that the message could take to be executed, then no"] + #[doc = "execution attempt will be made."] pub struct Execute { pub message: ::subxt::ext::subxt_core::alloc::boxed::Box, pub max_weight: execute::MaxWeight, @@ -40097,7 +46266,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_xcm_version`]."] + #[doc = "Extoll that a particular destination can be communicated with through a particular"] + #[doc = "version of XCM."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The destination that is being described."] + #[doc = "- `xcm_version`: The latest version of XCM that `location` supports."] pub struct ForceXcmVersion { pub location: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -40105,8 +46279,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::ext::subxt_core::blocks::StaticExtrinsic for ForceXcmVersion { @@ -40127,7 +46300,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_default_xcm_version`]."] + #[doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] + #[doc = "version a destination can accept is unknown)."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] pub struct ForceDefaultXcmVersion { pub maybe_xcm_version: force_default_xcm_version::MaybeXcmVersion, } @@ -40153,7 +46330,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_subscribe_version_notify`]."] + #[doc = "Ask a location to notify us regarding their XCM version and any changes to it."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The location to which we should subscribe for XCM version notifications."] pub struct ForceSubscribeVersionNotify { pub location: ::subxt::ext::subxt_core::alloc::boxed::Box< force_subscribe_version_notify::Location, @@ -40161,7 +46341,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::ext::subxt_core::blocks::StaticExtrinsic for ForceSubscribeVersionNotify { const PALLET: &'static str = "XcmPallet"; @@ -40181,7 +46361,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_unsubscribe_version_notify`]."] + #[doc = "Require that a particular destination should no longer notify us regarding any XCM"] + #[doc = "version changes."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The location to which we are currently subscribed for XCM version"] + #[doc = " notifications which we no longer desire."] pub struct ForceUnsubscribeVersionNotify { pub location: ::subxt::ext::subxt_core::alloc::boxed::Box< force_unsubscribe_version_notify::Location, @@ -40189,7 +46374,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::ext::subxt_core::blocks::StaticExtrinsic for ForceUnsubscribeVersionNotify { const PALLET: &'static str = "XcmPallet"; @@ -40209,7 +46394,36 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::limited_reserve_transfer_assets`]."] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve."] + #[doc = ""] + #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] + #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] + #[doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] + #[doc = " to mint and deposit reserve-based assets to `beneficiary`."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] pub struct LimitedReserveTransferAssets { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box< limited_reserve_transfer_assets::Dest, @@ -40225,9 +46439,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; } @@ -40249,7 +46463,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::limited_teleport_assets`]."] + #[doc = "Teleport some assets from the local chain to some destination chain."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` chain."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] pub struct LimitedTeleportAssets { pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -40264,9 +46495,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; } @@ -40288,7 +46519,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_suspension`]."] + #[doc = "Set or unset the global suspension state of the XCM executor."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `suspended`: `true` to suspend, `false` to resume."] pub struct ForceSuspension { pub suspended: force_suspension::Suspended, } @@ -40300,10 +46534,210 @@ pub mod api { const PALLET: &'static str = "XcmPallet"; const CALL: &'static str = "force_suspension"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve, or through teleports."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] + #[doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] + #[doc = "operation will fail and the sent assets may be at risk."] + #[doc = ""] + #[doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] + #[doc = "to `dest`, no limitations imposed on `fees`."] + #[doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] + #[doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] + #[doc = " `beneficiary`."] + #[doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] + #[doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] + #[doc = " to `beneficiary`."] + #[doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] + #[doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] + #[doc = " and deposit reserve-based assets to `beneficiary`."] + #[doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] + #[doc = " assets and deposit them to `beneficiary`."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] + #[doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] + #[doc = " from relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] + pub struct TransferAssets { + pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box, + pub beneficiary: + ::subxt::ext::subxt_core::alloc::boxed::Box, + pub assets: + ::subxt::ext::subxt_core::alloc::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::ext::subxt_core::blocks::StaticExtrinsic for TransferAssets { + const PALLET: &'static str = "XcmPallet"; + const CALL: &'static str = "transfer_assets"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] + #[doc = ""] + #[doc = "- `origin`: Anyone can call this extrinsic."] + #[doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] + #[doc = "was the latest when they were trapped."] + #[doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] + pub struct ClaimAssets { + pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box, + pub beneficiary: + ::subxt::ext::subxt_core::alloc::boxed::Box, + } + pub mod claim_assets { + use super::runtime_types; + pub type Assets = runtime_types::xcm::VersionedAssets; + pub type Beneficiary = runtime_types::xcm::VersionedLocation; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ClaimAssets { + const PALLET: &'static str = "XcmPallet"; + const CALL: &'static str = "claim_assets"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] + #[doc = "types for assets and fees."] + #[doc = ""] + #[doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] + #[doc = "provide the `assets_transfer_type` to be used for `assets`:"] + #[doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] + #[doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] + #[doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] + #[doc = " the remote `reserve` is Asset Hub."] + #[doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] + #[doc = " mint/teleport assets and deposit them to `beneficiary`."] + #[doc = ""] + #[doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] + #[doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] + #[doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] + #[doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] + #[doc = "specified through `fees_transfer_type`."] + #[doc = ""] + #[doc = "The caller needs to specify what should happen to the transferred assets once they reach"] + #[doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] + #[doc = "contains the instructions to execute on `dest` as a final step."] + #[doc = " This is usually as simple as:"] + #[doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] + #[doc = " but could be something more exotic like sending the `assets` even further."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] + #[doc = " parachain across a bridge to another ecosystem destination."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] + #[doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] + #[doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] + #[doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] + #[doc = " transfer, which also determines what happens to the assets on the destination chain."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] + pub struct TransferAssetsUsingTypeAndThen { + pub dest: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::Dest, + >, + pub assets: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::Assets, + >, + pub assets_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::AssetsTransferType, + >, + pub remote_fees_id: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::RemoteFeesId, + >, + pub fees_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::FeesTransferType, + >, + pub custom_xcm_on_dest: ::subxt::ext::subxt_core::alloc::boxed::Box< + transfer_assets_using_type_and_then::CustomXcmOnDest, + >, + pub weight_limit: transfer_assets_using_type_and_then::WeightLimit, + } + pub mod transfer_assets_using_type_and_then { + use super::runtime_types; + pub type Dest = runtime_types::xcm::VersionedLocation; + pub type Assets = runtime_types::xcm::VersionedAssets; + pub type AssetsTransferType = + runtime_types::staging_xcm_executor::traits::asset_transfer::TransferType; + pub type RemoteFeesId = runtime_types::xcm::VersionedAssetId; + pub type FeesTransferType = + runtime_types::staging_xcm_executor::traits::asset_transfer::TransferType; + pub type CustomXcmOnDest = runtime_types::xcm::VersionedXcm1; + pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAssetsUsingTypeAndThen { + const PALLET: &'static str = "XcmPallet"; + const CALL: &'static str = "transfer_assets_using_type_and_then"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::send`]."] pub fn send( &self, dest: types::send::Dest, @@ -40318,13 +46752,31 @@ pub mod api { message: ::subxt::ext::subxt_core::alloc::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, ], ) } - #[doc = "See [`Pallet::teleport_assets`]."] + #[doc = "Teleport some assets from the local chain to some destination chain."] + #[doc = ""] + #[doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] + #[doc = "with all fees taken as needed from the asset."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` chain."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] pub fn teleport_assets( &self, dest: types::teleport_assets::Dest, @@ -40345,13 +46797,42 @@ 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, ], ) } - #[doc = "See [`Pallet::reserve_transfer_assets`]."] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve."] + #[doc = ""] + #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] + #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] + #[doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] + #[doc = " to mint and deposit reserve-based assets to `beneficiary`."] + #[doc = ""] + #[doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] + #[doc = "with all fees taken as needed from the asset."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] pub fn reserve_transfer_assets( &self, dest: types::reserve_transfer_assets::Dest, @@ -40373,13 +46854,21 @@ 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, ], ) } - #[doc = "See [`Pallet::execute`]."] + #[doc = "Execute an XCM message from a local, signed, origin."] + #[doc = ""] + #[doc = "An event is deposited indicating whether `msg` could be executed completely or only"] + #[doc = "partially."] + #[doc = ""] + #[doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] + #[doc = "the maximum amount of weight that the message could take to be executed, then no"] + #[doc = "execution attempt will be made."] pub fn execute( &self, message: types::execute::Message, @@ -40394,13 +46883,19 @@ 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, ], ) } - #[doc = "See [`Pallet::force_xcm_version`]."] + #[doc = "Extoll that a particular destination can be communicated with through a particular"] + #[doc = "version of XCM."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The destination that is being described."] + #[doc = "- `xcm_version`: The latest version of XCM that `location` supports."] pub fn force_xcm_version( &self, location: types::force_xcm_version::Location, @@ -40415,13 +46910,17 @@ 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, ], ) } - #[doc = "See [`Pallet::force_default_xcm_version`]."] + #[doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] + #[doc = "version a destination can accept is unknown)."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] pub fn force_default_xcm_version( &self, maybe_xcm_version: types::force_default_xcm_version::MaybeXcmVersion, @@ -40440,7 +46939,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_subscribe_version_notify`]."] + #[doc = "Ask a location to notify us regarding their XCM version and any changes to it."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The location to which we should subscribe for XCM version notifications."] pub fn force_subscribe_version_notify( &self, location: types::force_subscribe_version_notify::Location, @@ -40454,13 +46956,18 @@ pub mod api { location: ::subxt::ext::subxt_core::alloc::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, ], ) } - #[doc = "See [`Pallet::force_unsubscribe_version_notify`]."] + #[doc = "Require that a particular destination should no longer notify us regarding any XCM"] + #[doc = "version changes."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `location`: The location to which we are currently subscribed for XCM version"] + #[doc = " notifications which we no longer desire."] pub fn force_unsubscribe_version_notify( &self, location: types::force_unsubscribe_version_notify::Location, @@ -40474,14 +46981,42 @@ pub mod api { location: ::subxt::ext::subxt_core::alloc::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, ], ) } - #[doc = "See [`Pallet::limited_reserve_transfer_assets`]."] + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve."] + #[doc = ""] + #[doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] + #[doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] + #[doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] + #[doc = " to mint and deposit reserve-based assets to `beneficiary`."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] pub fn limited_reserve_transfer_assets( &self, dest: types::limited_reserve_transfer_assets::Dest, @@ -40505,14 +47040,31 @@ 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, ], ) } - #[doc = "See [`Pallet::limited_teleport_assets`]."] + #[doc = "Teleport some assets from the local chain to some destination chain."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` chain."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] pub fn limited_teleport_assets( &self, dest: types::limited_teleport_assets::Dest, @@ -40536,14 +47088,16 @@ 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, ], ) } - #[doc = "See [`Pallet::force_suspension`]."] + #[doc = "Set or unset the global suspension state of the XCM executor."] + #[doc = ""] + #[doc = "- `origin`: Must be an origin specified by AdminOrigin."] + #[doc = "- `suspended`: `true` to suspend, `false` to resume."] pub fn force_suspension( &self, suspended: types::force_suspension::Suspended, @@ -40560,6 +47114,184 @@ pub mod api { ], ) } + #[doc = "Transfer some assets from the local chain to the destination chain through their local,"] + #[doc = "destination or remote reserve, or through teleports."] + #[doc = ""] + #[doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] + #[doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] + #[doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] + #[doc = "operation will fail and the sent assets may be at risk."] + #[doc = ""] + #[doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] + #[doc = "to `dest`, no limitations imposed on `fees`."] + #[doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] + #[doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] + #[doc = " `beneficiary`."] + #[doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] + #[doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] + #[doc = " to `beneficiary`."] + #[doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] + #[doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] + #[doc = " and deposit reserve-based assets to `beneficiary`."] + #[doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] + #[doc = " assets and deposit them to `beneficiary`."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] + #[doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] + #[doc = " from relay to parachain."] + #[doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] + #[doc = " generally be an `AccountId32` value."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] + #[doc = " fees."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] + 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::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "XcmPallet", + "transfer_assets", + types::TransferAssets { + dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest), + beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + beneficiary, + ), + assets: ::subxt::ext::subxt_core::alloc::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 = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] + #[doc = ""] + #[doc = "- `origin`: Anyone can call this extrinsic."] + #[doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] + #[doc = "was the latest when they were trapped."] + #[doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] + pub fn claim_assets( + &self, + assets: types::claim_assets::Assets, + beneficiary: types::claim_assets::Beneficiary, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "XcmPallet", + "claim_assets", + types::ClaimAssets { + assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets), + beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + beneficiary, + ), + }, + [ + 155u8, 23u8, 166u8, 172u8, 251u8, 171u8, 136u8, 240u8, 253u8, 51u8, + 164u8, 43u8, 141u8, 23u8, 189u8, 177u8, 33u8, 32u8, 212u8, 56u8, 174u8, + 165u8, 129u8, 7u8, 49u8, 217u8, 213u8, 214u8, 250u8, 91u8, 200u8, + 195u8, + ], + ) + } + #[doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] + #[doc = "types for assets and fees."] + #[doc = ""] + #[doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] + #[doc = "provide the `assets_transfer_type` to be used for `assets`:"] + #[doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] + #[doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] + #[doc = " assets to `beneficiary`."] + #[doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] + #[doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] + #[doc = " deposit them to `beneficiary`."] + #[doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] + #[doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] + #[doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] + #[doc = " the remote `reserve` is Asset Hub."] + #[doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] + #[doc = " mint/teleport assets and deposit them to `beneficiary`."] + #[doc = ""] + #[doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] + #[doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] + #[doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] + #[doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] + #[doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] + #[doc = "at risk."] + #[doc = ""] + #[doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] + #[doc = "specified through `fees_transfer_type`."] + #[doc = ""] + #[doc = "The caller needs to specify what should happen to the transferred assets once they reach"] + #[doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] + #[doc = "contains the instructions to execute on `dest` as a final step."] + #[doc = " This is usually as simple as:"] + #[doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] + #[doc = " but could be something more exotic like sending the `assets` even further."] + #[doc = ""] + #[doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] + #[doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] + #[doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] + #[doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] + #[doc = " parachain across a bridge to another ecosystem destination."] + #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] + #[doc = " fee on the `dest` (and possibly reserve) chains."] + #[doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] + #[doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] + #[doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] + #[doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] + #[doc = " transfer, which also determines what happens to the assets on the destination chain."] + #[doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] + pub fn transfer_assets_using_type_and_then( + &self, + dest: types::transfer_assets_using_type_and_then::Dest, + assets: types::transfer_assets_using_type_and_then::Assets, + assets_transfer_type : types :: transfer_assets_using_type_and_then :: AssetsTransferType, + remote_fees_id: types::transfer_assets_using_type_and_then::RemoteFeesId, + fees_transfer_type : types :: transfer_assets_using_type_and_then :: FeesTransferType, + custom_xcm_on_dest: types::transfer_assets_using_type_and_then::CustomXcmOnDest, + weight_limit: types::transfer_assets_using_type_and_then::WeightLimit, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::TransferAssetsUsingTypeAndThen, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "XcmPallet", + "transfer_assets_using_type_and_then", + types::TransferAssetsUsingTypeAndThen { + dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new(dest), + assets: ::subxt::ext::subxt_core::alloc::boxed::Box::new(assets), + assets_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + assets_transfer_type, + ), + remote_fees_id: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + remote_fees_id, + ), + fees_transfer_type: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + fees_transfer_type, + ), + custom_xcm_on_dest: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + custom_xcm_on_dest, + ), + weight_limit, + }, + [ + 128u8, 51u8, 64u8, 139u8, 106u8, 225u8, 14u8, 247u8, 44u8, 109u8, 11u8, + 15u8, 7u8, 235u8, 7u8, 195u8, 177u8, 94u8, 9u8, 107u8, 110u8, 174u8, + 154u8, 157u8, 20u8, 232u8, 38u8, 207u8, 228u8, 151u8, 10u8, 226u8, + ], + ) + } } } #[doc = "The `Event` enum of this pallet"] @@ -40582,7 +47314,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::ext::subxt_core::events::StaticEvent for Attempted { const PALLET: &'static str = "XcmPallet"; @@ -40607,9 +47339,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::Xcm1; + 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::Xcm1; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for Sent { @@ -40635,7 +47367,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::ext::subxt_core::events::StaticEvent for UnexpectedResponse { @@ -40661,7 +47393,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::ext::subxt_core::events::StaticEvent for ResponseReady { const PALLET: &'static str = "XcmPallet"; @@ -40801,11 +47533,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::ext::subxt_core::events::StaticEvent for InvalidResponder { const PALLET: &'static str = "XcmPallet"; @@ -40834,7 +47565,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::ext::subxt_core::events::StaticEvent for InvalidResponderVersion { @@ -40882,8 +47613,8 @@ pub mod api { pub mod assets_trapped { use super::runtime_types; pub type Hash = ::subxt::ext::subxt_core::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::ext::subxt_core::events::StaticEvent for AssetsTrapped { const PALLET: &'static str = "XcmPallet"; @@ -40910,9 +47641,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::ext::subxt_core::events::StaticEvent for VersionChangeNotified { @@ -40937,7 +47668,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::ext::subxt_core::events::StaticEvent for SupportedVersionChanged { @@ -40963,7 +47694,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; } @@ -40989,7 +47720,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::ext::subxt_core::events::StaticEvent for NotifyTargetMigrationFail { @@ -41019,7 +47750,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::ext::subxt_core::events::StaticEvent for InvalidQuerierVersion { @@ -41047,13 +47778,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::ext::subxt_core::events::StaticEvent for InvalidQuerier { const PALLET: &'static str = "XcmPallet"; @@ -41078,8 +47807,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::ext::subxt_core::events::StaticEvent for VersionNotifyStarted { @@ -41104,8 +47833,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::ext::subxt_core::events::StaticEvent for VersionNotifyRequested { @@ -41131,8 +47860,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::ext::subxt_core::events::StaticEvent for VersionNotifyUnrequested { @@ -41156,8 +47885,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::ext::subxt_core::events::StaticEvent for FeesPaid { const PALLET: &'static str = "XcmPallet"; @@ -41182,13 +47911,35 @@ pub mod api { pub mod assets_claimed { use super::runtime_types; pub type Hash = ::subxt::ext::subxt_core::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::ext::subxt_core::events::StaticEvent for AssetsClaimed { const PALLET: &'static str = "XcmPallet"; const EVENT: &'static str = "AssetsClaimed"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A XCM version migration finished."] + pub struct VersionMigrationFinished { + pub version: version_migration_finished::Version, + } + pub mod version_migration_finished { + use super::runtime_types; + pub type Version = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for VersionMigrationFinished { + const PALLET: &'static str = "XcmPallet"; + const EVENT: &'static str = "VersionMigrationFinished"; + } } pub mod storage { use super::runtime_types; @@ -41217,13 +47968,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; @@ -41233,13 +47984,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::BoundedVec26<( - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, ::core::primitive::u32, )>; } @@ -41261,7 +48012,7 @@ pub mod api { pub type LockedFungibles = runtime_types::bounded_collections::bounded_vec::BoundedVec28<( ::core::primitive::u128, - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, )>; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } @@ -41269,6 +48020,14 @@ pub mod api { use super::runtime_types; pub type XcmExecutionSuspended = ::core::primitive::bool; } + pub mod should_record_xcm { + use super::runtime_types; + pub type ShouldRecordXcm = ::core::primitive::bool; + } + pub mod recorded_xcm { + use super::runtime_types; + pub type RecordedXcm = runtime_types::staging_xcm::v4::Xcm1; + } } pub struct StorageApi; impl StorageApi { @@ -41309,9 +48068,10 @@ pub mod api { "Queries", (), [ - 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, ], ) } @@ -41335,15 +48095,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, @@ -41367,7 +48128,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, @@ -41432,9 +48193,10 @@ pub mod api { "SupportedVersion", (), [ - 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, ], ) } @@ -41458,9 +48220,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, ], ) } @@ -41495,9 +48258,10 @@ pub mod api { ), ), [ - 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, ], ) } @@ -41516,9 +48280,10 @@ pub mod api { "VersionNotifiers", (), [ - 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, ], ) } @@ -41542,9 +48307,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, ], ) } @@ -41579,9 +48345,10 @@ pub mod api { ), ), [ - 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, ], ) } @@ -41601,10 +48368,9 @@ pub mod api { "VersionNotifyTargets", (), [ - 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, ], ) } @@ -41629,10 +48395,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, ], ) } @@ -41668,10 +48433,9 @@ pub mod api { ), ), [ - 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, ], ) } @@ -41692,9 +48456,10 @@ pub mod api { "VersionDiscoveryQueue", (), [ - 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, ], ) } @@ -41734,9 +48499,10 @@ pub mod api { "RemoteLockedFungibles", (), [ - 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, ], ) } @@ -41760,9 +48526,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, ], ) } @@ -41797,9 +48564,10 @@ pub mod api { ), ), [ - 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, ], ) } @@ -41841,9 +48609,10 @@ pub mod api { ), ), [ - 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, ], ) } @@ -41862,10 +48631,9 @@ pub mod api { "LockedFungibles", (), [ - 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, ], ) } @@ -41889,10 +48657,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, ], ) } @@ -41917,6 +48684,876 @@ pub mod api { ], ) } + #[doc = " Whether or not incoming XCMs (both executed locally and received) should be recorded."] + #[doc = " Only one XCM program will be recorded at a time."] + #[doc = " This is meant to be used in runtime APIs, and it's advised it stays false"] + #[doc = " for all other use cases, so as to not degrade regular performance."] + #[doc = ""] + #[doc = " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]"] + #[doc = " implementation in the XCM executor configuration."] + pub fn should_record_xcm( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::should_record_xcm::ShouldRecordXcm, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "XcmPallet", + "ShouldRecordXcm", + (), + [ + 77u8, 184u8, 154u8, 92u8, 185u8, 225u8, 131u8, 210u8, 55u8, 115u8, 3u8, + 182u8, 191u8, 132u8, 51u8, 136u8, 42u8, 136u8, 54u8, 36u8, 229u8, + 229u8, 47u8, 88u8, 4u8, 175u8, 136u8, 78u8, 226u8, 253u8, 13u8, 178u8, + ], + ) + } + #[doc = " If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally"] + #[doc = " will be stored here."] + #[doc = " Runtime APIs can fetch the XCM that was executed by accessing this value."] + #[doc = ""] + #[doc = " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]"] + #[doc = " implementation in the XCM executor configuration."] + pub fn recorded_xcm( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::recorded_xcm::RecordedXcm, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "XcmPallet", + "RecordedXcm", + (), + [ + 20u8, 231u8, 100u8, 77u8, 9u8, 170u8, 144u8, 49u8, 131u8, 233u8, 184u8, + 123u8, 186u8, 56u8, 115u8, 3u8, 79u8, 234u8, 71u8, 93u8, 87u8, 172u8, + 2u8, 3u8, 144u8, 151u8, 135u8, 149u8, 106u8, 96u8, 125u8, 12u8, + ], + ) + } + } + } + } + pub mod beefy { + use super::root_mod; + use super::runtime_types; + #[doc = "The `Error` enum of this pallet."] + pub type Error = runtime_types::pallet_beefy::pallet::Error; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::pallet_beefy::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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + pub struct ReportEquivocation { + pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + report_equivocation::EquivocationProof, + >, + pub key_owner_proof: report_equivocation::KeyOwnerProof, + } + pub mod report_equivocation { + use super::runtime_types; + pub type EquivocationProof = + runtime_types::sp_consensus_beefy::DoubleVotingProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, + >; + pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocation { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "report_equivocation"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + pub struct ReportEquivocationUnsigned { + pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + report_equivocation_unsigned::EquivocationProof, + >, + pub key_owner_proof: report_equivocation_unsigned::KeyOwnerProof, + } + pub mod report_equivocation_unsigned { + use super::runtime_types; + pub type EquivocationProof = + runtime_types::sp_consensus_beefy::DoubleVotingProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, + >; + pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocationUnsigned { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "report_equivocation_unsigned"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"] + #[doc = "future."] + #[doc = ""] + #[doc = "Note: `delay_in_blocks` has to be at least 1."] + pub struct SetNewGenesis { + pub delay_in_blocks: set_new_genesis::DelayInBlocks, + } + pub mod set_new_genesis { + use super::runtime_types; + pub type DelayInBlocks = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetNewGenesis { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "set_new_genesis"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + pub fn report_equivocation( + &self, + equivocation_proof: types::report_equivocation::EquivocationProof, + key_owner_proof: types::report_equivocation::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "report_equivocation", + types::ReportEquivocation { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + equivocation_proof, + ), + key_owner_proof, + }, + [ + 196u8, 92u8, 30u8, 54u8, 79u8, 96u8, 54u8, 238u8, 29u8, 255u8, 252u8, + 236u8, 8u8, 104u8, 107u8, 190u8, 115u8, 54u8, 232u8, 58u8, 145u8, + 191u8, 110u8, 12u8, 165u8, 154u8, 48u8, 216u8, 178u8, 99u8, 123u8, + 218u8, + ], + ) + } + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + pub fn report_equivocation_unsigned( + &self, + equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, + key_owner_proof: types::report_equivocation_unsigned::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ReportEquivocationUnsigned, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "report_equivocation_unsigned", + types::ReportEquivocationUnsigned { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + equivocation_proof, + ), + key_owner_proof, + }, + [ + 106u8, 120u8, 157u8, 177u8, 251u8, 12u8, 39u8, 235u8, 94u8, 241u8, + 75u8, 204u8, 100u8, 82u8, 246u8, 168u8, 238u8, 155u8, 163u8, 20u8, + 83u8, 81u8, 77u8, 206u8, 10u8, 159u8, 196u8, 223u8, 11u8, 98u8, 128u8, + 97u8, + ], + ) + } + #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"] + #[doc = "future."] + #[doc = ""] + #[doc = "Note: `delay_in_blocks` has to be at least 1."] + pub fn set_new_genesis( + &self, + delay_in_blocks: types::set_new_genesis::DelayInBlocks, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "set_new_genesis", + types::SetNewGenesis { delay_in_blocks }, + [ + 147u8, 6u8, 252u8, 43u8, 77u8, 91u8, 170u8, 45u8, 112u8, 155u8, 158u8, + 79u8, 1u8, 116u8, 162u8, 146u8, 181u8, 9u8, 171u8, 48u8, 198u8, 210u8, + 243u8, 64u8, 229u8, 35u8, 28u8, 177u8, 144u8, 22u8, 165u8, 163u8, + ], + ) + } + } + } + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod authorities { + use super::runtime_types; + pub type Authorities = + runtime_types::bounded_collections::bounded_vec::BoundedVec29< + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >; + } + pub mod validator_set_id { + use super::runtime_types; + pub type ValidatorSetId = ::core::primitive::u64; + } + pub mod next_authorities { + use super::runtime_types; + pub type NextAuthorities = + runtime_types::bounded_collections::bounded_vec::BoundedVec29< + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >; + } + pub mod set_id_session { + use super::runtime_types; + pub type SetIdSession = ::core::primitive::u32; + pub type Param0 = ::core::primitive::u64; + } + pub mod genesis_block { + use super::runtime_types; + pub type GenesisBlock = ::core::option::Option<::core::primitive::u32>; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " The current authorities set"] + pub fn authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::authorities::Authorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "Authorities", + (), + [ + 135u8, 146u8, 24u8, 144u8, 245u8, 251u8, 253u8, 63u8, 44u8, 46u8, 72u8, + 115u8, 190u8, 93u8, 201u8, 244u8, 80u8, 80u8, 156u8, 171u8, 69u8, + 126u8, 67u8, 51u8, 196u8, 136u8, 93u8, 176u8, 111u8, 247u8, 19u8, + 161u8, + ], + ) + } + #[doc = " The current validator set id"] + pub fn validator_set_id( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::validator_set_id::ValidatorSetId, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "ValidatorSetId", + (), + [ + 168u8, 84u8, 23u8, 134u8, 153u8, 30u8, 183u8, 176u8, 206u8, 100u8, + 109u8, 86u8, 109u8, 126u8, 146u8, 175u8, 173u8, 1u8, 253u8, 42u8, + 122u8, 207u8, 71u8, 4u8, 145u8, 83u8, 148u8, 29u8, 243u8, 52u8, 29u8, + 78u8, + ], + ) + } + #[doc = " Authorities set scheduled to be used with the next session"] + pub fn next_authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::next_authorities::NextAuthorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "NextAuthorities", + (), + [ + 183u8, 185u8, 111u8, 92u8, 70u8, 221u8, 225u8, 184u8, 218u8, 97u8, + 108u8, 66u8, 60u8, 148u8, 40u8, 73u8, 236u8, 28u8, 169u8, 32u8, 202u8, + 125u8, 238u8, 246u8, 210u8, 51u8, 25u8, 61u8, 220u8, 195u8, 156u8, + 217u8, + ], + ) + } + #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"] + #[doc = " members were responsible."] + #[doc = ""] + #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"] + #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"] + #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"] + #[doc = " was the owner of a given key on a given session, and what the active set ID was"] + #[doc = " during that session."] + #[doc = ""] + #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."] + pub fn set_id_session_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::set_id_session::SetIdSession, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "SetIdSession", + (), + [ + 47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8, + 65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8, + 238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8, + ], + ) + } + #[doc = " A mapping from BEEFY set ID to the index of the *most recent* session for which its"] + #[doc = " members were responsible."] + #[doc = ""] + #[doc = " This is only used for validating equivocation proofs. An equivocation proof must"] + #[doc = " contains a key-ownership proof for a given session, therefore we need a way to tie"] + #[doc = " together sessions and BEEFY set ids, i.e. we need to validate that a validator"] + #[doc = " was the owner of a given key on a given session, and what the active set ID was"] + #[doc = " during that session."] + #[doc = ""] + #[doc = " TWOX-NOTE: `ValidatorSetId` is not under user control."] + pub fn set_id_session( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::set_id_session::Param0, + >, + types::set_id_session::SetIdSession, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "SetIdSession", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 47u8, 0u8, 239u8, 121u8, 187u8, 213u8, 254u8, 50u8, 238u8, 10u8, 162u8, + 65u8, 189u8, 166u8, 37u8, 74u8, 82u8, 81u8, 160u8, 20u8, 180u8, 253u8, + 238u8, 18u8, 209u8, 203u8, 38u8, 148u8, 16u8, 105u8, 72u8, 169u8, + ], + ) + } + #[doc = " Block number where BEEFY consensus is enabled/started."] + #[doc = " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively"] + #[doc = " restarted from the newly set block number."] + pub fn genesis_block( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::genesis_block::GenesisBlock, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Beefy", + "GenesisBlock", + (), + [ + 198u8, 155u8, 11u8, 240u8, 189u8, 245u8, 159u8, 127u8, 55u8, 33u8, + 48u8, 29u8, 209u8, 119u8, 163u8, 24u8, 28u8, 22u8, 163u8, 163u8, 124u8, + 88u8, 126u8, 4u8, 193u8, 158u8, 29u8, 243u8, 212u8, 4u8, 41u8, 22u8, + ], + ) + } + } + } + pub mod constants { + use super::runtime_types; + pub struct ConstantsApi; + impl ConstantsApi { + #[doc = " The maximum number of authorities that can be added."] + pub fn max_authorities( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Beefy", + "MaxAuthorities", + [ + 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 number of nominators for each validator."] + pub fn max_nominators( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Beefy", + "MaxNominators", + [ + 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 number of entries to keep in the set id to session index mapping."] + #[doc = ""] + #[doc = " Since the `SetIdSession` map is only used for validating equivocations this"] + #[doc = " value should relate to the bonding duration of whatever staking system is"] + #[doc = " being used (if any). If equivocation handling is not enabled then this value"] + #[doc = " can be zero."] + pub fn max_set_id_session_entries( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u64, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Beefy", + "MaxSetIdSessionEntries", + [ + 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 mmr { + use super::root_mod; + use super::runtime_types; + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod root_hash { + use super::runtime_types; + pub type RootHash = ::subxt::ext::subxt_core::utils::H256; + } + pub mod number_of_leaves { + use super::runtime_types; + pub type NumberOfLeaves = ::core::primitive::u64; + } + pub mod nodes { + use super::runtime_types; + pub type Nodes = ::subxt::ext::subxt_core::utils::H256; + pub type Param0 = ::core::primitive::u64; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Latest MMR Root hash."] + pub fn root_hash( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::root_hash::RootHash, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Mmr", + "RootHash", + (), + [ + 111u8, 206u8, 173u8, 92u8, 67u8, 49u8, 150u8, 113u8, 90u8, 245u8, 38u8, + 254u8, 76u8, 250u8, 167u8, 66u8, 130u8, 129u8, 251u8, 220u8, 172u8, + 229u8, 162u8, 251u8, 36u8, 227u8, 43u8, 189u8, 7u8, 106u8, 23u8, 13u8, + ], + ) + } + #[doc = " Current size of the MMR (number of leaves)."] + pub fn number_of_leaves( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::number_of_leaves::NumberOfLeaves, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Mmr", + "NumberOfLeaves", + (), + [ + 123u8, 58u8, 149u8, 174u8, 85u8, 45u8, 20u8, 115u8, 241u8, 0u8, 51u8, + 174u8, 234u8, 60u8, 230u8, 59u8, 237u8, 144u8, 170u8, 32u8, 4u8, 0u8, + 34u8, 163u8, 238u8, 205u8, 93u8, 208u8, 53u8, 38u8, 141u8, 195u8, + ], + ) + } + #[doc = " Hashes of the nodes in the MMR."] + #[doc = ""] + #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"] + #[doc = " are pruned and only stored in the Offchain DB."] + pub fn nodes_iter( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::nodes::Nodes, + (), + (), + ::subxt::ext::subxt_core::utils::Yes, + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Mmr", + "Nodes", + (), + [ + 27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8, + 206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8, + 249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8, + ], + ) + } + #[doc = " Hashes of the nodes in the MMR."] + #[doc = ""] + #[doc = " Note this collection only contains MMR peaks, the inner nodes (and leaves)"] + #[doc = " are pruned and only stored in the Offchain DB."] + pub fn nodes( + &self, + _0: impl ::core::borrow::Borrow, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + ::subxt::ext::subxt_core::storage::address::StaticStorageKey< + types::nodes::Param0, + >, + types::nodes::Nodes, + ::subxt::ext::subxt_core::utils::Yes, + (), + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "Mmr", + "Nodes", + ::subxt::ext::subxt_core::storage::address::StaticStorageKey::new( + _0.borrow(), + ), + [ + 27u8, 84u8, 41u8, 195u8, 146u8, 81u8, 211u8, 189u8, 63u8, 125u8, 173u8, + 206u8, 69u8, 198u8, 202u8, 213u8, 89u8, 31u8, 89u8, 177u8, 76u8, 154u8, + 249u8, 197u8, 133u8, 78u8, 142u8, 71u8, 183u8, 3u8, 132u8, 25u8, + ], + ) + } + } + } + } + pub mod mmr_leaf { + use super::root_mod; + use super::runtime_types; + pub mod storage { + use super::runtime_types; + pub mod types { + use super::runtime_types; + pub mod beefy_authorities { + use super::runtime_types; + pub type BeefyAuthorities = + runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet< + ::subxt::ext::subxt_core::utils::H256, + >; + } + pub mod beefy_next_authorities { + use super::runtime_types; + pub type BeefyNextAuthorities = + runtime_types::sp_consensus_beefy::mmr::BeefyAuthoritySet< + ::subxt::ext::subxt_core::utils::H256, + >; + } + } + pub struct StorageApi; + impl StorageApi { + #[doc = " Details of current BEEFY authority set."] + pub fn beefy_authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::beefy_authorities::BeefyAuthorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "MmrLeaf", + "BeefyAuthorities", + (), + [ + 128u8, 35u8, 176u8, 79u8, 224u8, 58u8, 214u8, 234u8, 231u8, 71u8, + 227u8, 153u8, 180u8, 189u8, 66u8, 44u8, 47u8, 174u8, 0u8, 83u8, 121u8, + 182u8, 226u8, 44u8, 224u8, 173u8, 237u8, 102u8, 231u8, 146u8, 110u8, + 7u8, + ], + ) + } + #[doc = " Details of next BEEFY authority set."] + #[doc = ""] + #[doc = " This storage entry is used as cache for calls to `update_beefy_next_authority_set`."] + pub fn beefy_next_authorities( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::beefy_next_authorities::BeefyNextAuthorities, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "MmrLeaf", + "BeefyNextAuthorities", + (), + [ + 97u8, 71u8, 52u8, 111u8, 120u8, 251u8, 183u8, 155u8, 177u8, 100u8, + 236u8, 142u8, 204u8, 117u8, 95u8, 40u8, 201u8, 36u8, 32u8, 82u8, 38u8, + 234u8, 135u8, 39u8, 224u8, 69u8, 94u8, 85u8, 12u8, 89u8, 97u8, 218u8, + ], + ) + } + } + } + } + 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"] + #[doc = "deposits held and removing storage items associated with `who`."] + pub struct ReapIdentity { + pub who: reap_identity::Who, + } + pub mod reap_identity { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReapIdentity { + const PALLET: &'static str = "IdentityMigrator"; + const CALL: &'static str = "reap_identity"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"] + #[doc = "Instruction."] + pub struct PokeDeposit { + pub who: poke_deposit::Who, + } + pub mod poke_deposit { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for PokeDeposit { + const PALLET: &'static str = "IdentityMigrator"; + const CALL: &'static str = "poke_deposit"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"] + #[doc = "deposits held and removing storage items associated with `who`."] + pub fn reap_identity( + &self, + who: types::reap_identity::Who, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"] + #[doc = "Instruction."] + pub fn poke_deposit( + &self, + who: types::poke_deposit::Who, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for IdentityReaped { + const PALLET: &'static str = "IdentityMigrator"; + const EVENT: &'static str = "IdentityReaped"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32; + pub type Identity = ::core::primitive::u128; + pub type Subs = ::core::primitive::u128; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for DepositUpdated { + const PALLET: &'static str = "IdentityMigrator"; + const EVENT: &'static str = "DepositUpdated"; } } } @@ -41947,7 +49584,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_schedule_para_initialize`]."] + #[doc = "Schedule a para to be initialized at the start of the next session."] + #[doc = ""] + #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"] + #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"] + #[doc = "running coretime chain required."] pub struct SudoScheduleParaInitialize { pub id: sudo_schedule_para_initialize::Id, pub genesis: sudo_schedule_para_initialize::Genesis, @@ -41976,7 +49617,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_schedule_para_cleanup`]."] + #[doc = "Schedule a para to be cleaned up at the start of the next session."] pub struct SudoScheduleParaCleanup { pub id: sudo_schedule_para_cleanup::Id, } @@ -42002,7 +49643,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_schedule_parathread_upgrade`]."] + #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"] pub struct SudoScheduleParathreadUpgrade { pub id: sudo_schedule_parathread_upgrade::Id, } @@ -42028,7 +49669,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_schedule_parachain_downgrade`]."] + #[doc = "Downgrade a lease holding parachain to an on-demand parachain"] pub struct SudoScheduleParachainDowngrade { pub id: sudo_schedule_parachain_downgrade::Id, } @@ -42054,7 +49695,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_queue_downward_xcm`]."] + #[doc = "Send a downward XCM to the given para."] + #[doc = ""] + #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"] + #[doc = "size `config.max_downward_message_size`."] pub struct SudoQueueDownwardXcm { pub id: sudo_queue_downward_xcm::Id, pub xcm: @@ -42083,7 +49727,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_establish_hrmp_channel`]."] + #[doc = "Forcefully establish a channel from the sender to the recipient."] + #[doc = ""] + #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"] + #[doc = "`Hrmp::hrmp_accept_open_channel`."] pub struct SudoEstablishHrmpChannel { pub sender: sudo_establish_hrmp_channel::Sender, pub recipient: sudo_establish_hrmp_channel::Recipient, @@ -42105,7 +49752,11 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::sudo_schedule_para_initialize`]."] + #[doc = "Schedule a para to be initialized at the start of the next session."] + #[doc = ""] + #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"] + #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"] + #[doc = "running coretime chain required."] pub fn sudo_schedule_para_initialize( &self, id: types::sudo_schedule_para_initialize::Id, @@ -42124,7 +49775,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_schedule_para_cleanup`]."] + #[doc = "Schedule a para to be cleaned up at the start of the next session."] pub fn sudo_schedule_para_cleanup( &self, id: types::sudo_schedule_para_cleanup::Id, @@ -42142,7 +49793,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_schedule_parathread_upgrade`]."] + #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"] pub fn sudo_schedule_parathread_upgrade( &self, id: types::sudo_schedule_parathread_upgrade::Id, @@ -42161,7 +49812,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_schedule_parachain_downgrade`]."] + #[doc = "Downgrade a lease holding parachain to an on-demand parachain"] pub fn sudo_schedule_parachain_downgrade( &self, id: types::sudo_schedule_parachain_downgrade::Id, @@ -42180,7 +49831,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_queue_downward_xcm`]."] + #[doc = "Send a downward XCM to the given para."] + #[doc = ""] + #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"] + #[doc = "size `config.max_downward_message_size`."] pub fn sudo_queue_downward_xcm( &self, id: types::sudo_queue_downward_xcm::Id, @@ -42195,14 +49849,16 @@ pub mod api { xcm: ::subxt::ext::subxt_core::alloc::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, ], ) } - #[doc = "See [`Pallet::sudo_establish_hrmp_channel`]."] + #[doc = "Forcefully establish a channel from the sender to the recipient."] + #[doc = ""] + #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"] + #[doc = "`Hrmp::hrmp_accept_open_channel`."] pub fn sudo_establish_hrmp_channel( &self, sender: types::sudo_establish_hrmp_channel::Sender, @@ -42258,7 +49914,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::assign_perm_parachain_slot`]."] + #[doc = "Assign a permanent parachain slot and immediately create a lease for it."] pub struct AssignPermParachainSlot { pub id: assign_perm_parachain_slot::Id, } @@ -42284,7 +49940,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::assign_temp_parachain_slot`]."] + #[doc = "Assign a temporary parachain slot. The function tries to create a lease for it"] + #[doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"] + #[doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."] pub struct AssignTempParachainSlot { pub id: assign_temp_parachain_slot::Id, pub lease_period_start: assign_temp_parachain_slot::LeasePeriodStart, @@ -42312,7 +49970,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::unassign_parachain_slot`]."] + #[doc = "Unassign a permanent or temporary parachain slot"] pub struct UnassignParachainSlot { pub id: unassign_parachain_slot::Id, } @@ -42338,7 +49996,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_permanent_slots`]."] + #[doc = "Sets the storage value [`MaxPermanentSlots`]."] pub struct SetMaxPermanentSlots { pub slots: set_max_permanent_slots::Slots, } @@ -42364,7 +50022,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_max_temporary_slots`]."] + #[doc = "Sets the storage value [`MaxTemporarySlots`]."] pub struct SetMaxTemporarySlots { pub slots: set_max_temporary_slots::Slots, } @@ -42379,7 +50037,7 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::assign_perm_parachain_slot`]."] + #[doc = "Assign a permanent parachain slot and immediately create a lease for it."] pub fn assign_perm_parachain_slot( &self, id: types::assign_perm_parachain_slot::Id, @@ -42397,7 +50055,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::assign_temp_parachain_slot`]."] + #[doc = "Assign a temporary parachain slot. The function tries to create a lease for it"] + #[doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"] + #[doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."] pub fn assign_temp_parachain_slot( &self, id: types::assign_temp_parachain_slot::Id, @@ -42420,7 +50080,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::unassign_parachain_slot`]."] + #[doc = "Unassign a permanent or temporary parachain slot"] pub fn unassign_parachain_slot( &self, id: types::unassign_parachain_slot::Id, @@ -42439,7 +50099,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_permanent_slots`]."] + #[doc = "Sets the storage value [`MaxPermanentSlots`]."] pub fn set_max_permanent_slots( &self, slots: types::set_max_permanent_slots::Slots, @@ -42456,7 +50116,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_max_temporary_slots`]."] + #[doc = "Sets the storage value [`MaxTemporarySlots`]."] pub fn set_max_temporary_slots( &self, slots: types::set_max_temporary_slots::Slots, @@ -42893,7 +50553,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::register_validators`]."] + #[doc = "Add new validators to the set."] + #[doc = ""] + #[doc = "The new validators will be active from current session + 2."] pub struct RegisterValidators { pub validators: register_validators::Validators, } @@ -42921,7 +50583,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::deregister_validators`]."] + #[doc = "Remove validators from the set."] + #[doc = ""] + #[doc = "The removed validators will be deactivated from current session + 2."] pub struct DeregisterValidators { pub validators: deregister_validators::Validators, } @@ -42938,7 +50602,9 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::register_validators`]."] + #[doc = "Add new validators to the set."] + #[doc = ""] + #[doc = "The new validators will be active from current session + 2."] pub fn register_validators( &self, validators: types::register_validators::Validators, @@ -42956,7 +50622,9 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::deregister_validators`]."] + #[doc = "Remove validators from the set."] + #[doc = ""] + #[doc = "The removed validators will be deactivated from current session + 2."] pub fn deregister_validators( &self, validators: types::deregister_validators::Validators, @@ -43117,7 +50785,9 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::control_auto_migration`]."] + #[doc = "Control the automatic migration."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."] pub struct ControlAutoMigration { pub maybe_config: control_auto_migration::MaybeConfig, } @@ -43145,7 +50815,27 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::continue_migrate`]."] + #[doc = "Continue the migration for the given `limits`."] + #[doc = ""] + #[doc = "The dispatch origin of this call can be any signed account."] + #[doc = ""] + #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"] + #[doc = "Upon successful execution, the transaction fee is returned."] + #[doc = ""] + #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"] + #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"] + #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"] + #[doc = "`real_size_upper` bytes of read data."] + #[doc = ""] + #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"] + #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"] + #[doc = "from caller, saying that they believed `witness_task` was the last state of the"] + #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"] + #[doc = "holds. In case `witness_task` does not match, the transaction fails."] + #[doc = ""] + #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"] + #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"] + #[doc = "`size` limit can always be overwritten."] pub struct ContinueMigrate { pub limits: continue_migrate::Limits, pub real_size_upper: continue_migrate::RealSizeUpper, @@ -43177,7 +50867,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::migrate_custom_top`]."] + #[doc = "Migrate the list of top keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] pub struct MigrateCustomTop { pub keys: migrate_custom_top::Keys, pub witness_size: migrate_custom_top::WitnessSize, @@ -43207,7 +50900,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::migrate_custom_child`]."] + #[doc = "Migrate the list of child keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "All of the given child keys must be present under one `child_root`."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] pub struct MigrateCustomChild { pub root: migrate_custom_child::Root, pub child_keys: migrate_custom_child::ChildKeys, @@ -43240,7 +50938,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_signed_max_limits`]."] + #[doc = "Set the maximum limit of the signed migration."] pub struct SetSignedMaxLimits { pub limits: set_signed_max_limits::Limits, } @@ -43267,7 +50965,15 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::force_set_progress`]."] + #[doc = "Forcefully set the progress the running migration."] + #[doc = ""] + #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"] + #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"] + #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"] + #[doc = "used, so probably it is already migrated."] + #[doc = ""] + #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"] + #[doc = "process."] pub struct ForceSetProgress { pub progress_top: force_set_progress::ProgressTop, pub progress_child: force_set_progress::ProgressChild, @@ -43286,7 +50992,9 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::control_auto_migration`]."] + #[doc = "Control the automatic migration."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."] pub fn control_auto_migration( &self, maybe_config: types::control_auto_migration::MaybeConfig, @@ -43303,7 +51011,27 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::continue_migrate`]."] + #[doc = "Continue the migration for the given `limits`."] + #[doc = ""] + #[doc = "The dispatch origin of this call can be any signed account."] + #[doc = ""] + #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"] + #[doc = "Upon successful execution, the transaction fee is returned."] + #[doc = ""] + #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"] + #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"] + #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"] + #[doc = "`real_size_upper` bytes of read data."] + #[doc = ""] + #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"] + #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"] + #[doc = "from caller, saying that they believed `witness_task` was the last state of the"] + #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"] + #[doc = "holds. In case `witness_task` does not match, the transaction fails."] + #[doc = ""] + #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"] + #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"] + #[doc = "`size` limit can always be overwritten."] pub fn continue_migrate( &self, limits: types::continue_migrate::Limits, @@ -43327,7 +51055,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::migrate_custom_top`]."] + #[doc = "Migrate the list of top keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] pub fn migrate_custom_top( &self, keys: types::migrate_custom_top::Keys, @@ -43345,7 +51076,12 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::migrate_custom_child`]."] + #[doc = "Migrate the list of child keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "All of the given child keys must be present under one `child_root`."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] pub fn migrate_custom_child( &self, root: types::migrate_custom_child::Root, @@ -43368,7 +51104,7 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::set_signed_max_limits`]."] + #[doc = "Set the maximum limit of the signed migration."] pub fn set_signed_max_limits( &self, limits: types::set_signed_max_limits::Limits, @@ -43385,7 +51121,15 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::force_set_progress`]."] + #[doc = "Forcefully set the progress the running migration."] + #[doc = ""] + #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"] + #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"] + #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"] + #[doc = "used, so probably it is already migrated."] + #[doc = ""] + #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"] + #[doc = "process."] pub fn force_set_progress( &self, progress_top: types::force_set_progress::ProgressTop, @@ -43624,7 +51368,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::ext::subxt_core::constants::address::StaticAddress< @@ -43644,10 +51388,126 @@ pub mod api { } } } + pub mod root_testing { + use super::root_mod; + use super::runtime_types; + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub type Call = runtime_types::pallet_root_testing::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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "A dispatch that will fill the block weight up to the given ratio."] + pub struct FillBlock { + pub ratio: fill_block::Ratio, + } + pub mod fill_block { + use super::runtime_types; + pub type Ratio = runtime_types::sp_arithmetic::per_things::Perbill; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for FillBlock { + const PALLET: &'static str = "RootTesting"; + const CALL: &'static str = "fill_block"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct TriggerDefensive; + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TriggerDefensive { + const PALLET: &'static str = "RootTesting"; + const CALL: &'static str = "trigger_defensive"; + } + } + pub struct TransactionApi; + impl TransactionApi { + #[doc = "A dispatch that will fill the block weight up to the given ratio."] + pub fn fill_block( + &self, + ratio: types::fill_block::Ratio, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "RootTesting", + "fill_block", + types::FillBlock { ratio }, + [ + 164u8, 37u8, 43u8, 91u8, 125u8, 34u8, 208u8, 126u8, 67u8, 94u8, 184u8, + 240u8, 68u8, 208u8, 41u8, 206u8, 172u8, 95u8, 111u8, 115u8, 9u8, 250u8, + 163u8, 66u8, 240u8, 0u8, 237u8, 140u8, 87u8, 57u8, 162u8, 117u8, + ], + ) + } + pub fn trigger_defensive( + &self, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "RootTesting", + "trigger_defensive", + types::TriggerDefensive {}, + [ + 170u8, 234u8, 12u8, 158u8, 10u8, 171u8, 161u8, 144u8, 101u8, 67u8, + 150u8, 128u8, 105u8, 234u8, 223u8, 60u8, 241u8, 245u8, 112u8, 21u8, + 80u8, 216u8, 72u8, 147u8, 22u8, 125u8, 19u8, 200u8, 171u8, 153u8, 88u8, + 194u8, + ], + ) + } + } + } + #[doc = "The `Event` enum of this pallet"] + pub type Event = runtime_types::pallet_root_testing::pallet::Event; + pub mod events { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "Event dispatched when the trigger_defensive extrinsic is called."] + pub struct DefensiveTestCall; + impl ::subxt::ext::subxt_core::events::StaticEvent for DefensiveTestCall { + const PALLET: &'static str = "RootTesting"; + const EVENT: &'static str = "DefensiveTestCall"; + } + } + } 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; @@ -43671,7 +51531,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] pub struct Sudo { pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, } @@ -43697,7 +51557,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_unchecked_weight`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Sudo user to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub struct SudoUncheckedWeight { pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -43726,7 +51590,8 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::set_key`]."] + #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"] + #[doc = "key."] pub struct SetKey { pub new: set_key::New, } @@ -43755,7 +51620,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - #[doc = "See [`Pallet::sudo_as`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"] + #[doc = "a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub struct SudoAs { pub who: sudo_as::Who, pub call: ::subxt::ext::subxt_core::alloc::boxed::Box, @@ -43772,10 +51640,32 @@ pub mod api { const PALLET: &'static str = "Sudo"; const CALL: &'static str = "sudo_as"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] + pub struct RemoveKey; + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveKey { + const PALLET: &'static str = "Sudo"; + const CALL: &'static str = "remove_key"; + } } pub struct TransactionApi; impl TransactionApi { - #[doc = "See [`Pallet::sudo`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] pub fn sudo( &self, call: types::sudo::Call, @@ -43788,13 +51678,17 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 56u8, 148u8, 134u8, 0u8, 111u8, 126u8, 24u8, 154u8, 223u8, 48u8, 246u8, - 206u8, 238u8, 120u8, 128u8, 149u8, 172u8, 101u8, 130u8, 156u8, 150u8, - 30u8, 8u8, 160u8, 241u8, 58u8, 220u8, 53u8, 75u8, 115u8, 77u8, 222u8, + 46u8, 16u8, 20u8, 107u8, 59u8, 50u8, 4u8, 187u8, 29u8, 249u8, 99u8, + 223u8, 124u8, 129u8, 32u8, 127u8, 131u8, 151u8, 121u8, 35u8, 161u8, + 23u8, 58u8, 87u8, 179u8, 138u8, 152u8, 56u8, 142u8, 146u8, 59u8, 214u8, ], ) } - #[doc = "See [`Pallet::sudo_unchecked_weight`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Sudo user to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub fn sudo_unchecked_weight( &self, call: types::sudo_unchecked_weight::Call, @@ -43809,14 +51703,14 @@ pub mod api { weight, }, [ - 125u8, 67u8, 243u8, 4u8, 12u8, 40u8, 182u8, 28u8, 143u8, 31u8, 201u8, - 50u8, 55u8, 136u8, 117u8, 189u8, 112u8, 186u8, 22u8, 25u8, 127u8, - 223u8, 255u8, 50u8, 111u8, 207u8, 85u8, 125u8, 59u8, 179u8, 239u8, - 212u8, + 188u8, 153u8, 76u8, 172u8, 157u8, 192u8, 16u8, 161u8, 38u8, 139u8, + 216u8, 93u8, 75u8, 252u8, 13u8, 142u8, 139u8, 96u8, 127u8, 30u8, 119u8, + 223u8, 121u8, 47u8, 193u8, 162u8, 82u8, 86u8, 69u8, 54u8, 143u8, 178u8, ], ) } - #[doc = "See [`Pallet::set_key`]."] + #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"] + #[doc = "key."] pub fn set_key( &self, new: types::set_key::New, @@ -43833,7 +51727,10 @@ pub mod api { ], ) } - #[doc = "See [`Pallet::sudo_as`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"] + #[doc = "a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] pub fn sudo_as( &self, who: types::sudo_as::Who, @@ -43848,10 +51745,28 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 149u8, 84u8, 143u8, 109u8, 44u8, 175u8, 20u8, 56u8, 122u8, 248u8, - 185u8, 163u8, 218u8, 12u8, 170u8, 231u8, 118u8, 189u8, 252u8, 27u8, - 35u8, 172u8, 2u8, 108u8, 63u8, 210u8, 245u8, 96u8, 162u8, 100u8, 15u8, - 39u8, + 166u8, 117u8, 117u8, 101u8, 13u8, 182u8, 157u8, 33u8, 28u8, 175u8, + 198u8, 32u8, 102u8, 46u8, 149u8, 245u8, 50u8, 135u8, 191u8, 91u8, 69u8, + 112u8, 95u8, 150u8, 127u8, 105u8, 97u8, 86u8, 181u8, 189u8, 73u8, 40u8, + ], + ) + } + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] + pub fn remove_key( + &self, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::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, ], ) } @@ -43896,12 +51811,13 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::utils::AccountId32>; + pub type Old = ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>; + pub type New = ::subxt::ext::subxt_core::utils::AccountId32; } impl ::subxt::ext::subxt_core::events::StaticEvent for KeyChanged { const PALLET: &'static str = "Sudo"; @@ -43917,6 +51833,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "The key was permanently removed."] + pub struct KeyRemoved; + impl ::subxt::ext::subxt_core::events::StaticEvent for KeyRemoved { + const PALLET: &'static str = "Sudo"; + const EVENT: &'static str = "KeyRemoved"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A [sudo_as](Pallet::sudo_as) call just took place."] pub struct SudoAsDone { pub sudo_result: sudo_as_done::SudoResult, @@ -44301,6 +52233,21 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] + pub struct BoundedVec29<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] pub struct BoundedVec3<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -44690,6 +52637,8 @@ pub mod api { Overweight(runtime_types::sp_weights::weight_v2::Weight), #[codec(index = 4)] Yield, + #[codec(index = 5)] + StackLimitReached, } } pub mod preimages { @@ -44715,7 +52664,7 @@ pub mod api { }, #[codec(index = 1)] Inline( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, ), @@ -45024,25 +52973,30 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::remark`]."] + #[doc = "Make some on-chain remark."] + #[doc = ""] + #[doc = "Can be executed by every `origin`."] remark { remark: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::set_heap_pages`]."] + #[doc = "Set the number of pages in the WebAssembly environment's heap."] set_heap_pages { pages: ::core::primitive::u64 }, #[codec(index = 2)] - #[doc = "See [`Pallet::set_code`]."] + #[doc = "Set the new runtime code."] set_code { code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 3)] - #[doc = "See [`Pallet::set_code_without_checks`]."] + #[doc = "Set the new runtime code without doing any checks of the given `code`."] + #[doc = ""] + #[doc = "Note that runtime upgrades will not run if this is called with a not-increasing spec"] + #[doc = "version!"] set_code_without_checks { code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 4)] - #[doc = "See [`Pallet::set_storage`]."] + #[doc = "Set some items of storage."] set_storage { items: ::subxt::ext::subxt_core::alloc::vec::Vec<( ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, @@ -45050,23 +53004,59 @@ pub mod api { )>, }, #[codec(index = 5)] - #[doc = "See [`Pallet::kill_storage`]."] + #[doc = "Kill some items from storage."] kill_storage { keys: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, >, }, #[codec(index = 6)] - #[doc = "See [`Pallet::kill_prefix`]."] + #[doc = "Kill all storage items with a key that starts with the given prefix."] + #[doc = ""] + #[doc = "**NOTE:** We rely on the Root origin to provide us the number of subkeys under"] + #[doc = "the prefix we are removing to accurately calculate the weight of this function."] kill_prefix { prefix: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, subkeys: ::core::primitive::u32, }, #[codec(index = 7)] - #[doc = "See [`Pallet::remark_with_event`]."] + #[doc = "Make some on-chain remark and emit event."] remark_with_event { remark: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, + #[codec(index = 9)] + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "This call requires Root origin."] + authorize_upgrade { + code_hash: ::subxt::ext::subxt_core::utils::H256, + }, + #[codec(index = 10)] + #[doc = "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied"] + #[doc = "later."] + #[doc = ""] + #[doc = "WARNING: This authorizes an upgrade that will take place without any safety checks, for"] + #[doc = "example that the spec name remains the same and that the version number increases. Not"] + #[doc = "recommended for normal use. Use `authorize_upgrade` instead."] + #[doc = ""] + #[doc = "This call requires Root origin."] + authorize_upgrade_without_checks { + code_hash: ::subxt::ext::subxt_core::utils::H256, + }, + #[codec(index = 11)] + #[doc = "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized."] + #[doc = ""] + #[doc = "If the authorization required a version check, this call will ensure the spec name"] + #[doc = "remains unchanged and that the spec version has increased."] + #[doc = ""] + #[doc = "Depending on the runtime's `OnSetCode` configuration, this function may directly apply"] + #[doc = "the new `code` in the same block or attempt to schedule the upgrade."] + #[doc = ""] + #[doc = "All origins are allowed."] + apply_authorized_upgrade { + code: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45106,6 +53096,15 @@ pub mod api { #[codec(index = 5)] #[doc = "The origin filter prevent the call to be dispatched."] CallFiltered, + #[codec(index = 6)] + #[doc = "A multi-block migration is ongoing and prevents the current code from being replaced."] + MultiBlockMigrationsOngoing, + #[codec(index = 7)] + #[doc = "No upgrade authorized."] + NothingAuthorized, + #[codec(index = 8)] + #[doc = "The submitted code is not authorized."] + Unauthorized, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45153,6 +53152,12 @@ pub mod api { sender: ::subxt::ext::subxt_core::utils::AccountId32, hash: ::subxt::ext::subxt_core::utils::H256, }, + #[codec(index = 6)] + #[doc = "An upgrade was authorized."] + UpgradeAuthorized { + code_hash: ::subxt::ext::subxt_core::utils::H256, + check_version: ::core::primitive::bool, + }, } } #[derive( @@ -45182,6 +53187,20 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct CodeUpgradeAuthorization { + pub code_hash: ::subxt::ext::subxt_core::utils::H256, + pub check_version: ::core::primitive::bool, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct EventRecord<_0, _1> { pub phase: runtime_types::frame_system::Phase, pub event: _0, @@ -45242,7 +53261,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::create`]."] + #[doc = "Initialize a conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] create { asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -45250,7 +53272,10 @@ pub mod api { rate: runtime_types::sp_arithmetic::fixed_point::FixedU128, }, #[codec(index = 1)] - #[doc = "See [`Pallet::update`]."] + #[doc = "Update the conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] update { asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -45258,7 +53283,10 @@ pub mod api { rate: runtime_types::sp_arithmetic::fixed_point::FixedU128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::remove`]."] + #[doc = "Remove an existing conversion rate to native balance for the given asset."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)"] remove { asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -45287,6 +53315,9 @@ pub mod api { #[codec(index = 1)] #[doc = "The given asset ID already has an assigned conversion rate and cannot be re-created."] AlreadyExists, + #[codec(index = 2)] + #[doc = "Overflow ocurred when calculating the inverse rate."] + Overflow, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45346,7 +53377,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] report_equivocation { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_slots::EquivocationProof< @@ -45359,7 +53393,14 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 1)] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report authority equivocation/misbehavior. This method will verify"] + #[doc = "the equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence will"] + #[doc = "be reported."] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] report_equivocation_unsigned { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_slots::EquivocationProof< @@ -45372,7 +53413,10 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 2)] - #[doc = "See [`Pallet::plan_config_change`]."] + #[doc = "Plan an epoch config change. The epoch config change is recorded and will be enacted on"] + #[doc = "the next call to `enact_epoch_change`. The config will be activated one epoch after."] + #[doc = "Multiple calls to this method will replace any existing planned config change that had"] + #[doc = "not been enacted yet."] plan_config_change { config: runtime_types::sp_consensus_babe::digests::NextConfigDescriptor, }, @@ -45429,7 +53473,13 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::transfer_allow_death`]."] + #[doc = "Transfer some liquid free balance to another account."] + #[doc = ""] + #[doc = "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver."] + #[doc = "If the sender's account is below the existential deposit as a result"] + #[doc = "of the transfer, the account will be reaped."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `Signed` by the transactor."] transfer_allow_death { dest: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45439,7 +53489,8 @@ pub mod api { value: ::core::primitive::u128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Exactly as `transfer_allow_death`, except the origin must be root and the source account"] + #[doc = "may be specified."] force_transfer { source: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45453,7 +53504,12 @@ pub mod api { value: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "See [`Pallet::transfer_keep_alive`]."] + #[doc = "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not"] + #[doc = "kill the origin account."] + #[doc = ""] + #[doc = "99% of the time you want [`transfer_allow_death`] instead."] + #[doc = ""] + #[doc = "[`transfer_allow_death`]: struct.Pallet.html#method.transfer"] transfer_keep_alive { dest: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45463,7 +53519,21 @@ pub mod api { value: ::core::primitive::u128, }, #[codec(index = 4)] - #[doc = "See [`Pallet::transfer_all`]."] + #[doc = "Transfer the entire transferable balance from the caller account."] + #[doc = ""] + #[doc = "NOTE: This function only attempts to transfer _transferable_ balances. This means that"] + #[doc = "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be"] + #[doc = "transferred by this function. To ensure that this function results in a killed account,"] + #[doc = "you might need to prepare the account by removing any reference counters, storage"] + #[doc = "deposits, etc..."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be Signed."] + #[doc = ""] + #[doc = "- `dest`: The recipient of the transfer."] + #[doc = "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all"] + #[doc = " of the funds the account has, causing the sender account to be killed (false), or"] + #[doc = " transfer everything except at least the existential deposit, which will guarantee to"] + #[doc = " keep the sender account alive (true)."] transfer_all { dest: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45472,7 +53542,9 @@ pub mod api { keep_alive: ::core::primitive::bool, }, #[codec(index = 5)] - #[doc = "See [`Pallet::force_unreserve`]."] + #[doc = "Unreserve some balance from a user by force."] + #[doc = ""] + #[doc = "Can only be called by ROOT."] force_unreserve { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45481,14 +53553,23 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 6)] - #[doc = "See [`Pallet::upgrade_accounts`]."] + #[doc = "Upgrade a specified account."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed`."] + #[doc = "- `who`: The account to be upgraded."] + #[doc = ""] + #[doc = "This will waive the transaction fee if at least all but 10% of the accounts needed to"] + #[doc = "be upgraded. (We let some not have to be upgraded just in order to allow for the"] + #[doc = "possibility of churn)."] upgrade_accounts { who: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, >, }, #[codec(index = 8)] - #[doc = "See [`Pallet::force_set_balance`]."] + #[doc = "Set the regular balance of a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call is `root`."] force_set_balance { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -45497,6 +53578,30 @@ pub mod api { #[codec(compact)] new_free: ::core::primitive::u128, }, + #[codec(index = 9)] + #[doc = "Adjust the total issuance in a saturating way."] + #[doc = ""] + #[doc = "Can only be called by root and always needs a positive `delta`."] + #[doc = ""] + #[doc = "# Example"] + force_adjust_total_issuance { + direction: runtime_types::pallet_balances::types::AdjustmentDirection, + #[codec(compact)] + delta: ::core::primitive::u128, + }, + #[codec(index = 10)] + #[doc = "Burn the specified liquid free balance from the origin account."] + #[doc = ""] + #[doc = "If the origin's account ends up below the existential deposit as a result"] + #[doc = "of the burn and `keep_alive` is false, the account will be reaped."] + #[doc = ""] + #[doc = "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,"] + #[doc = "this `burn` operation will reduce total issuance by the amount _burned_."] + burn { + #[codec(compact)] + value: ::core::primitive::u128, + keep_alive: ::core::primitive::bool, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45539,11 +53644,17 @@ pub mod api { #[doc = "Number of named reserves exceed `MaxReserves`."] TooManyReserves, #[codec(index = 8)] - #[doc = "Number of holds exceed `MaxHolds`."] + #[doc = "Number of holds exceed `VariantCountOf`."] TooManyHolds, #[codec(index = 9)] #[doc = "Number of freezes exceed `MaxFreezes`."] TooManyFreezes, + #[codec(index = 10)] + #[doc = "The issuance cannot be modified since it is already deactivated."] + IssuanceDeactivated, + #[codec(index = 11)] + #[doc = "The delta cannot be zero."] + DeltaZero, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -45686,6 +53797,12 @@ pub mod api { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, }, + #[codec(index = 21)] + #[doc = "The `TotalIssuance` was forcefully changed."] + TotalIssuanceForced { + old: ::core::primitive::u128, + new: ::core::primitive::u128, + }, } } pub mod types { @@ -45724,6 +53841,26 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] + pub enum AdjustmentDirection { + #[codec(index = 0)] + Increase, + #[codec(index = 1)] + Decrease, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] pub struct BalanceLock<_0> { pub id: [::core::primitive::u8; 8usize], pub amount: _0, @@ -45826,10 +53963,13 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] report_equivocation { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::sp_consensus_beefy::EquivocationProof< + runtime_types::sp_consensus_beefy::DoubleVotingProof< ::core::primitive::u32, runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, @@ -45838,10 +53978,18 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 1)] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] report_equivocation_unsigned { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::sp_consensus_beefy::EquivocationProof< + runtime_types::sp_consensus_beefy::DoubleVotingProof< ::core::primitive::u32, runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, @@ -45850,7 +53998,10 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 2)] - #[doc = "See [`Pallet::set_new_genesis`]."] + #[doc = "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the"] + #[doc = "future."] + #[doc = ""] + #[doc = "Note: `delay_in_blocks` has to be at least 1."] set_new_genesis { delay_in_blocks: ::core::primitive::u32, }, @@ -45907,7 +54058,18 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::propose_bounty`]."] + #[doc = "Propose a new bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as"] + #[doc = "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,"] + #[doc = "or slashed when rejected."] + #[doc = ""] + #[doc = "- `curator`: The curator account whom will manage this bounty."] + #[doc = "- `fee`: The curator fee."] + #[doc = "- `value`: The total payment amount of this bounty, curator fee included."] + #[doc = "- `description`: The description of this bounty."] propose_bounty { #[codec(compact)] value: ::core::primitive::u128, @@ -45915,13 +54077,24 @@ pub mod api { ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::approve_bounty`]."] + #[doc = "Approve a bounty proposal. At a later time, the bounty will be funded and become active"] + #[doc = "and the original deposit will be returned."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] approve_bounty { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose a curator to a funded bounty."] + #[doc = ""] + #[doc = "May only be called from `T::SpendOrigin`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] propose_curator { #[codec(compact)] bounty_id: ::core::primitive::u32, @@ -45933,19 +54106,50 @@ pub mod api { fee: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a bounty."] + #[doc = ""] + #[doc = "This function can only be called by the `RejectOrigin` a signed origin."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin`, we assume that the curator is"] + #[doc = "malicious or inactive. As a result, we will slash the curator when possible."] + #[doc = ""] + #[doc = "If the origin is the curator, we take this as a sign they are unable to do their job and"] + #[doc = "they willingly give up. We could slash them, but for now we allow them to recover their"] + #[doc = "deposit and exit without issue. (We may want to change this if it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows"] + #[doc = "anyone in the community to call out that a curator is not doing their due diligence, and"] + #[doc = "we should pick a new curator. In this case the curator should also be slashed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] unassign_curator { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 4)] - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for a bounty."] + #[doc = "A deposit will be reserved from curator and refund upon successful payout."] + #[doc = ""] + #[doc = "May only be called from the curator."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] accept_curator { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 5)] - #[doc = "See [`Pallet::award_bounty`]."] + #[doc = "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds"] + #[doc = "after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to award."] + #[doc = "- `beneficiary`: The beneficiary account whom will receive the payout."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] award_bounty { #[codec(compact)] bounty_id: ::core::primitive::u32, @@ -45955,19 +54159,42 @@ pub mod api { >, }, #[codec(index = 6)] - #[doc = "See [`Pallet::claim_bounty`]."] + #[doc = "Claim the payout from an awarded bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the beneficiary of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to claim."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] claim_bounty { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 7)] - #[doc = "See [`Pallet::close_bounty`]."] + #[doc = "Cancel a proposed or active bounty. All the funds will be sent to treasury and"] + #[doc = "the curator deposit will be unreserved if possible."] + #[doc = ""] + #[doc = "Only `T::RejectOrigin` is able to cancel a bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to cancel."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] close_bounty { #[codec(compact)] bounty_id: ::core::primitive::u32, }, #[codec(index = 8)] - #[doc = "See [`Pallet::extend_bounty_expiry`]."] + #[doc = "Extend the expiry time of an active bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this bounty."] + #[doc = ""] + #[doc = "- `bounty_id`: Bounty ID to extend."] + #[doc = "- `remark`: additional information."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] extend_bounty_expiry { #[codec(compact)] bounty_id: ::core::primitive::u32, @@ -46139,6 +54366,34 @@ pub mod api { }, } } + pub mod pallet_broker { + use super::runtime_types; + pub mod coretime_interface { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 { @@ -46160,7 +54415,25 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::add_child_bounty`]."] + #[doc = "Add a new child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of parent"] + #[doc = "bounty and the parent bounty must be in \"active\" state."] + #[doc = ""] + #[doc = "Child-bounty gets added successfully & fund gets transferred from"] + #[doc = "parent bounty to child-bounty account, if parent bounty has enough"] + #[doc = "funds, else the call fails."] + #[doc = ""] + #[doc = "Upper bound to maximum number of active child bounties that can be"] + #[doc = "added are managed via runtime trait config"] + #[doc = "[`Config::MaxActiveChildBountyCount`]."] + #[doc = ""] + #[doc = "If the call is success, the status of child-bounty is updated to"] + #[doc = "\"Added\"."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added."] + #[doc = "- `value`: Value for executing the proposal."] + #[doc = "- `description`: Text description for the child-bounty."] add_child_bounty { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46170,7 +54443,21 @@ pub mod api { ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::propose_curator`]."] + #[doc = "Propose curator for funded child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be curator of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"Added\" state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"CuratorProposed\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `curator`: Address of child-bounty curator."] + #[doc = "- `fee`: payment fee to child-bounty curator for execution."] propose_curator { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46184,7 +54471,25 @@ pub mod api { fee: ::core::primitive::u128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::accept_curator`]."] + #[doc = "Accept the curator role for the child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the curator of this"] + #[doc = "child-bounty."] + #[doc = ""] + #[doc = "A deposit will be reserved from the curator and refund upon"] + #[doc = "successful payout or cancellation."] + #[doc = ""] + #[doc = "Fee for curator is deducted from curator fee of parent bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in \"CuratorProposed\" state, for processing the"] + #[doc = "call. And state of child-bounty is moved to \"Active\" on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] accept_curator { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46192,7 +54497,40 @@ pub mod api { child_bounty_id: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::unassign_curator`]."] + #[doc = "Unassign curator from a child-bounty."] + #[doc = ""] + #[doc = "The dispatch origin for this call can be either `RejectOrigin`, or"] + #[doc = "the curator of the parent bounty, or any signed origin."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin and the child-bounty"] + #[doc = "curator, parent bounty must be in active state, for this call to"] + #[doc = "work. We allow child-bounty curator and T::RejectOrigin to execute"] + #[doc = "this call irrespective of the parent bounty state."] + #[doc = ""] + #[doc = "If this function is called by the `RejectOrigin` or the"] + #[doc = "parent bounty curator, we assume that the child-bounty curator is"] + #[doc = "malicious or inactive. As a result, child-bounty curator deposit is"] + #[doc = "slashed."] + #[doc = ""] + #[doc = "If the origin is the child-bounty curator, we take this as a sign"] + #[doc = "that they are unable to do their job, and are willingly giving up."] + #[doc = "We could slash the deposit, but for now we allow them to unreserve"] + #[doc = "their deposit and exit without issue. (We may want to change this if"] + #[doc = "it is abused.)"] + #[doc = ""] + #[doc = "Finally, the origin can be anyone iff the child-bounty curator is"] + #[doc = "\"inactive\". Expiry update due of parent bounty is used to estimate"] + #[doc = "inactive state of child-bounty curator."] + #[doc = ""] + #[doc = "This allows anyone in the community to call out that a child-bounty"] + #[doc = "curator is not doing their due diligence, and we should pick a new"] + #[doc = "one. In this case the child-bounty curator deposit is slashed."] + #[doc = ""] + #[doc = "State of child-bounty is moved to Added state on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] unassign_curator { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46200,7 +54538,23 @@ pub mod api { child_bounty_id: ::core::primitive::u32, }, #[codec(index = 4)] - #[doc = "See [`Pallet::award_child_bounty`]."] + #[doc = "Award child-bounty to a beneficiary."] + #[doc = ""] + #[doc = "The beneficiary will be able to claim the funds after a delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be the parent curator or"] + #[doc = "curator of this child-bounty."] + #[doc = ""] + #[doc = "Parent bounty must be in active state, for this child-bounty call to"] + #[doc = "work."] + #[doc = ""] + #[doc = "Child-bounty must be in active state, for processing the call. And"] + #[doc = "state of child-bounty is moved to \"PendingPayout\" on successful call"] + #[doc = "completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] + #[doc = "- `beneficiary`: Beneficiary account."] award_child_bounty { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46212,7 +54566,22 @@ pub mod api { >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::claim_child_bounty`]."] + #[doc = "Claim the payout from an awarded child-bounty after payout delay."] + #[doc = ""] + #[doc = "The dispatch origin for this call may be any signed origin."] + #[doc = ""] + #[doc = "Call works independent of parent bounty state, No need for parent"] + #[doc = "bounty to be in active state."] + #[doc = ""] + #[doc = "The Beneficiary is paid out with agreed bounty value. Curator fee is"] + #[doc = "paid & curator deposit is unreserved."] + #[doc = ""] + #[doc = "Child-bounty must be in \"PendingPayout\" state, for processing the"] + #[doc = "call. And instance of child-bounty is removed from the state on"] + #[doc = "successful call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] claim_child_bounty { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46220,7 +54589,28 @@ pub mod api { child_bounty_id: ::core::primitive::u32, }, #[codec(index = 6)] - #[doc = "See [`Pallet::close_child_bounty`]."] + #[doc = "Cancel a proposed or active child-bounty. Child-bounty account funds"] + #[doc = "are transferred to parent bounty account. The child-bounty curator"] + #[doc = "deposit may be unreserved if possible."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be either parent curator or"] + #[doc = "`T::RejectOrigin`."] + #[doc = ""] + #[doc = "If the state of child-bounty is `Active`, curator deposit is"] + #[doc = "unreserved."] + #[doc = ""] + #[doc = "If the state of child-bounty is `PendingPayout`, call fails &"] + #[doc = "returns `PendingPayout` error."] + #[doc = ""] + #[doc = "For the origin other than T::RejectOrigin, parent bounty must be in"] + #[doc = "active state, for this child-bounty call to work. For origin"] + #[doc = "T::RejectOrigin execution is forced."] + #[doc = ""] + #[doc = "Instance of child-bounty is removed from the state on successful"] + #[doc = "call completion."] + #[doc = ""] + #[doc = "- `parent_bounty_id`: Index of parent bounty."] + #[doc = "- `child_bounty_id`: Index of child bounty."] close_child_bounty { #[codec(compact)] parent_bounty_id: ::core::primitive::u32, @@ -46395,7 +54785,15 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::vote`]."] + #[doc = "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;"] + #[doc = "otherwise it is a vote to keep the status quo."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `poll_index`: The index of the poll to vote for."] + #[doc = "- `vote`: The vote configuration."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter has voted on."] vote { #[codec(compact)] poll_index: ::core::primitive::u32, @@ -46404,7 +54802,29 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::delegate`]."] + #[doc = "Delegate the voting power (with some given conviction) of the sending account for a"] + #[doc = "particular class of polls."] + #[doc = ""] + #[doc = "The balance delegated is locked for as long as it's delegated, and thereafter for the"] + #[doc = "time appropriate for the conviction's lock period."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signing account must either:"] + #[doc = " - be delegating already; or"] + #[doc = " - have no voting activity (if there is, then it will need to be removed through"] + #[doc = " `remove_vote`)."] + #[doc = ""] + #[doc = "- `to`: The account whose voting the `target` account's voting power will follow."] + #[doc = "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls"] + #[doc = " to this function are required."] + #[doc = "- `conviction`: The conviction that will be attached to the delegated votes. When the"] + #[doc = " account is undelegated, the funds will be locked for the corresponding period."] + #[doc = "- `balance`: The amount of the account's balance to be used in delegating. This must not"] + #[doc = " be more than the account's current balance."] + #[doc = ""] + #[doc = "Emits `Delegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] delegate { class: ::core::primitive::u16, to: ::subxt::ext::subxt_core::utils::MultiAddress< @@ -46415,10 +54835,31 @@ pub mod api { balance: ::core::primitive::u128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::undelegate`]."] + #[doc = "Undelegate the voting power of the sending account for a particular class of polls."] + #[doc = ""] + #[doc = "Tokens may be unlocked following once an amount of time consistent with the lock period"] + #[doc = "of the conviction with which the delegation was issued has passed."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_ and the signing account must be"] + #[doc = "currently delegating."] + #[doc = ""] + #[doc = "- `class`: The class of polls to remove the delegation from."] + #[doc = ""] + #[doc = "Emits `Undelegated`."] + #[doc = ""] + #[doc = "Weight: `O(R)` where R is the number of polls the voter delegating to has"] + #[doc = " voted on. Weight is initially charged as if maximum votes, but is refunded later."] undelegate { class: ::core::primitive::u16 }, #[codec(index = 3)] - #[doc = "See [`Pallet::unlock`]."] + #[doc = "Remove the lock caused by prior voting/delegating which has expired within a particular"] + #[doc = "class."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `class`: The class of polls to unlock."] + #[doc = "- `target`: The account to remove the lock on."] + #[doc = ""] + #[doc = "Weight: `O(R)` with R number of vote of target."] unlock { class: ::core::primitive::u16, target: ::subxt::ext::subxt_core::utils::MultiAddress< @@ -46427,13 +54868,56 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::remove_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If:"] + #[doc = "- the poll was cancelled, or"] + #[doc = "- the poll is ongoing, or"] + #[doc = "- the poll has ended such that"] + #[doc = " - the vote of the account was in opposition to the result; or"] + #[doc = " - there was no conviction to the account's vote; or"] + #[doc = " - the account made a split vote"] + #[doc = "...then the vote is removed cleanly and a following call to `unlock` may result in more"] + #[doc = "funds being available."] + #[doc = ""] + #[doc = "If, however, the poll has ended and:"] + #[doc = "- it finished corresponding to the vote of the account, and"] + #[doc = "- the account made a standard vote with conviction, and"] + #[doc = "- the lock period of the conviction is not over"] + #[doc = "...then the lock will be aggregated into the overall account's lock, which may involve"] + #[doc = "*overlocking* (where the two locks are combined into a single lock that is the maximum"] + #[doc = "of both the amount locked and the time is it locked for)."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_, and the signer must have a vote"] + #[doc = "registered for poll `index`."] + #[doc = ""] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: Optional parameter, if given it indicates the class of the poll. For polls"] + #[doc = " which have finished or are cancelled, this must be `Some`."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] remove_vote { class: ::core::option::Option<::core::primitive::u16>, index: ::core::primitive::u32, }, #[codec(index = 5)] - #[doc = "See [`Pallet::remove_other_vote`]."] + #[doc = "Remove a vote for a poll."] + #[doc = ""] + #[doc = "If the `target` is equal to the signer, then this function is exactly equivalent to"] + #[doc = "`remove_vote`. If not equal to the signer, then the vote must have expired,"] + #[doc = "either because the poll was cancelled, because the voter lost the poll or"] + #[doc = "because the conviction period is over."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account of the vote to be removed; this account must have voted for poll"] + #[doc = " `index`."] + #[doc = "- `index`: The index of poll of the vote to be removed."] + #[doc = "- `class`: The class of the poll."] + #[doc = ""] + #[doc = "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on."] + #[doc = " Weight is calculated for the maximum number of vote."] remove_other_vote { target: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46476,7 +54960,7 @@ pub mod api { AlreadyDelegating, #[codec(index = 5)] #[doc = "The account currently has votes attached to it and the operation cannot succeed until"] - #[doc = "these are removed, either through `unvote` or `reap_vote`."] + #[doc = "these are removed through `remove_vote`."] AlreadyVoting, #[codec(index = 6)] #[doc = "Too high a balance was provided that the account cannot afford."] @@ -46715,7 +55199,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::report_equivocation`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] report_equivocation { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_grandpa::EquivocationProof< @@ -46726,7 +55213,15 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 1)] - #[doc = "See [`Pallet::report_equivocation_unsigned`]."] + #[doc = "Report voter equivocation/misbehavior. This method will verify the"] + #[doc = "equivocation proof and validate the given key ownership proof"] + #[doc = "against the extracted offender. If both are valid, the offence"] + #[doc = "will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] report_equivocation_unsigned { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_grandpa::EquivocationProof< @@ -46737,7 +55232,18 @@ pub mod api { key_owner_proof: runtime_types::sp_session::MembershipProof, }, #[codec(index = 2)] - #[doc = "See [`Pallet::note_stalled`]."] + #[doc = "Note that the current authority set of the GRANDPA finality gadget has stalled."] + #[doc = ""] + #[doc = "This will trigger a forced authority set change at the beginning of the next session, to"] + #[doc = "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume"] + #[doc = "that the block signalling the forced change will not be re-orged e.g. 1000 blocks."] + #[doc = "The block production rate (which may be slowed down because of finality lagging) should"] + #[doc = "be taken into account when choosing the `delay`. The GRANDPA voters based on the new"] + #[doc = "authority will start voting on top of `best_finalized_block_number` for new finalized"] + #[doc = "blocks. `best_finalized_block_number` should be the highest of the latest finalized"] + #[doc = "block of all validators of the new authority set."] + #[doc = ""] + #[doc = "Only callable by root."] note_stalled { delay: ::core::primitive::u32, best_finalized_block_number: ::core::primitive::u32, @@ -46858,6 +55364,37 @@ pub mod api { } pub mod pallet_identity { use super::runtime_types; + pub mod legacy { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct IdentityInfo { + pub additional: runtime_types::bounded_collections::bounded_vec::BoundedVec1<( + runtime_types::pallet_identity::types::Data, + runtime_types::pallet_identity::types::Data, + )>, + pub display: runtime_types::pallet_identity::types::Data, + pub legal: runtime_types::pallet_identity::types::Data, + pub web: runtime_types::pallet_identity::types::Data, + pub riot: runtime_types::pallet_identity::types::Data, + pub email: runtime_types::pallet_identity::types::Data, + pub pgp_fingerprint: ::core::option::Option<[::core::primitive::u8; 20usize]>, + pub image: runtime_types::pallet_identity::types::Data, + pub twitter: runtime_types::pallet_identity::types::Data, + } + } pub mod pallet { use super::runtime_types; #[derive( @@ -46877,7 +55414,13 @@ pub mod api { #[doc = "Identity pallet declaration."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::add_registrar`]."] + #[doc = "Add a registrar to the system."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be `T::RegistrarOrigin`."] + #[doc = ""] + #[doc = "- `account`: the account of the registrar."] + #[doc = ""] + #[doc = "Emits `RegistrarAdded` if successful."] add_registrar { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46885,14 +55428,31 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::set_identity`]."] + #[doc = "Set an account's identity information and reserve the appropriate deposit."] + #[doc = ""] + #[doc = "If the account already has identity information, the deposit is taken as part payment"] + #[doc = "for the new deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `info`: The identity information."] + #[doc = ""] + #[doc = "Emits `IdentitySet` if successful."] set_identity { info: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::pallet_identity::types::IdentityInfo, + runtime_types::pallet_identity::legacy::IdentityInfo, >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::set_subs`]."] + #[doc = "Set the sub-accounts of the sender."] + #[doc = ""] + #[doc = "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned"] + #[doc = "and an amount `SubAccountDeposit` will be reserved for each item in `subs`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "- `subs`: The identity's (new) sub-accounts."] set_subs { subs: ::subxt::ext::subxt_core::alloc::vec::Vec<( ::subxt::ext::subxt_core::utils::AccountId32, @@ -46900,10 +55460,32 @@ pub mod api { )>, }, #[codec(index = 3)] - #[doc = "See [`Pallet::clear_identity`]."] + #[doc = "Clear an account's identity info and all sub-accounts and return all deposits."] + #[doc = ""] + #[doc = "Payment: All reserved balances on the account are returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "identity."] + #[doc = ""] + #[doc = "Emits `IdentityCleared` if successful."] clear_identity, #[codec(index = 4)] - #[doc = "See [`Pallet::request_judgement`]."] + #[doc = "Request a judgement from a registrar."] + #[doc = ""] + #[doc = "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement"] + #[doc = "given."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is requested."] + #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] + #[doc = ""] + #[doc = "```nocompile"] + #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "```"] + #[doc = ""] + #[doc = "Emits `JudgementRequested` if successful."] request_judgement { #[codec(compact)] reg_index: ::core::primitive::u32, @@ -46911,10 +55493,25 @@ pub mod api { max_fee: ::core::primitive::u128, }, #[codec(index = 5)] - #[doc = "See [`Pallet::cancel_request`]."] + #[doc = "Cancel a previous request."] + #[doc = ""] + #[doc = "Payment: A previously reserved deposit is returned on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a"] + #[doc = "registered identity."] + #[doc = ""] + #[doc = "- `reg_index`: The index of the registrar whose judgement is no longer requested."] + #[doc = ""] + #[doc = "Emits `JudgementUnrequested` if successful."] cancel_request { reg_index: ::core::primitive::u32 }, #[codec(index = 6)] - #[doc = "See [`Pallet::set_fee`]."] + #[doc = "Set the fee required for a judgement to be requested from a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fee`: the new fee."] set_fee { #[codec(compact)] index: ::core::primitive::u32, @@ -46922,7 +55519,13 @@ pub mod api { fee: ::core::primitive::u128, }, #[codec(index = 7)] - #[doc = "See [`Pallet::set_account_id`]."] + #[doc = "Change the account associated with a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `new`: the new account ID."] set_account_id { #[codec(compact)] index: ::core::primitive::u32, @@ -46932,16 +55535,34 @@ pub mod api { >, }, #[codec(index = 8)] - #[doc = "See [`Pallet::set_fields`]."] + #[doc = "Set the field information for a registrar."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `index`."] + #[doc = ""] + #[doc = "- `index`: the index of the registrar whose fee is to be set."] + #[doc = "- `fields`: the fields that the registrar concerns themselves with."] set_fields { #[codec(compact)] index: ::core::primitive::u32, - fields: runtime_types::pallet_identity::types::BitFlags< - runtime_types::pallet_identity::types::IdentityField, - >, + fields: ::core::primitive::u64, }, #[codec(index = 9)] - #[doc = "See [`Pallet::provide_judgement`]."] + #[doc = "Provide a judgement for an account's identity."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must be the account"] + #[doc = "of the registrar whose index is `reg_index`."] + #[doc = ""] + #[doc = "- `reg_index`: the index of the registrar whose judgement is being made."] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = "- `judgement`: the judgement of the registrar of index `reg_index` about `target`."] + #[doc = "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is"] + #[doc = " provided."] + #[doc = ""] + #[doc = "Note: Judgements do not apply to a username."] + #[doc = ""] + #[doc = "Emits `JudgementGiven` if successful."] provide_judgement { #[codec(compact)] reg_index: ::core::primitive::u32, @@ -46955,7 +55576,18 @@ pub mod api { identity: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 10)] - #[doc = "See [`Pallet::kill_identity`]."] + #[doc = "Remove an account's identity and sub-account information and slash the deposits."] + #[doc = ""] + #[doc = "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by"] + #[doc = "`Slash`. Verification request deposits are not returned; they should be cancelled"] + #[doc = "manually using `cancel_request`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] + #[doc = ""] + #[doc = "- `target`: the account whose identity the judgement is upon. This must be an account"] + #[doc = " with a registered identity."] + #[doc = ""] + #[doc = "Emits `IdentityKilled` if successful."] kill_identity { target: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46963,7 +55595,13 @@ pub mod api { >, }, #[codec(index = 11)] - #[doc = "See [`Pallet::add_sub`]."] + #[doc = "Add the given account to the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] add_sub { sub: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46972,7 +55610,10 @@ pub mod api { data: runtime_types::pallet_identity::types::Data, }, #[codec(index = 12)] - #[doc = "See [`Pallet::rename_sub`]."] + #[doc = "Alter the associated name of the given sub-account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] rename_sub { sub: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46981,7 +55622,13 @@ pub mod api { data: runtime_types::pallet_identity::types::Data, }, #[codec(index = 13)] - #[doc = "See [`Pallet::remove_sub`]."] + #[doc = "Remove the given account from the sender's subs."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "sub identity of `sub`."] remove_sub { sub: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -46989,8 +55636,89 @@ pub mod api { >, }, #[codec(index = 14)] - #[doc = "See [`Pallet::quit_sub`]."] + #[doc = "Remove the sender as a sub-account."] + #[doc = ""] + #[doc = "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated"] + #[doc = "to the sender (*not* the original depositor)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have a registered"] + #[doc = "super-identity."] + #[doc = ""] + #[doc = "NOTE: This should not normally be used, but is provided in the case that the non-"] + #[doc = "controller of an account is maliciously registered as a sub-account."] quit_sub, + #[codec(index = 15)] + #[doc = "Add an `AccountId` with permission to grant usernames with a given `suffix` appended."] + #[doc = ""] + #[doc = "The authority can grant up to `allocation` usernames. To top up their allocation, they"] + #[doc = "should just issue (or request via governance) a new `add_username_authority` call."] + add_username_authority { + authority: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + suffix: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + allocation: ::core::primitive::u32, + }, + #[codec(index = 16)] + #[doc = "Remove `authority` from the username authorities."] + remove_username_authority { + authority: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + }, + #[codec(index = 17)] + #[doc = "Set the username for `who`. Must be called by a username authority."] + #[doc = ""] + #[doc = "The authority must have an `allocation`. Users can either pre-sign their usernames or"] + #[doc = "accept them later."] + #[doc = ""] + #[doc = "Usernames must:"] + #[doc = " - Only contain lowercase ASCII characters or digits."] + #[doc = " - When combined with the suffix of the issuing authority be _less than_ the"] + #[doc = " `MaxUsernameLength`."] + set_username_for { + who: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + username: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + signature: + ::core::option::Option, + }, + #[codec(index = 18)] + #[doc = "Accept a given username that an `authority` granted. The call must include the full"] + #[doc = "username, as in `username.suffix`."] + accept_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 19)] + #[doc = "Remove an expired username approval. The username was approved by an authority but never"] + #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"] + #[doc = "full username, as in `username.suffix`."] + remove_expired_approval { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 20)] + #[doc = "Set a given username as the primary. The username should include the suffix."] + set_primary_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 21)] + #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] + #[doc = "gets a username but then calls `clear_identity`."] + remove_dangling_username { + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -47042,26 +55770,50 @@ pub mod api { #[doc = "The target is invalid."] InvalidTarget, #[codec(index = 11)] - #[doc = "Too many additional fields."] - TooManyFields, - #[codec(index = 12)] #[doc = "Maximum amount of registrars reached. Cannot add any more."] TooManyRegistrars, - #[codec(index = 13)] + #[codec(index = 12)] #[doc = "Account ID is already named."] AlreadyClaimed, - #[codec(index = 14)] + #[codec(index = 13)] #[doc = "Sender is not a sub-account."] NotSub, - #[codec(index = 15)] + #[codec(index = 14)] #[doc = "Sub-account isn't owned by sender."] NotOwned, - #[codec(index = 16)] + #[codec(index = 15)] #[doc = "The provided judgement was for a different identity."] JudgementForDifferentIdentity, - #[codec(index = 17)] + #[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 :: subxt_core :: ext :: codec :: Decode, @@ -47141,12 +55893,60 @@ pub mod api { main: ::subxt::ext::subxt_core::utils::AccountId32, deposit: ::core::primitive::u128, }, + #[codec(index = 10)] + #[doc = "A username authority was added."] + AuthorityAdded { + authority: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 11)] + #[doc = "A username authority was removed."] + AuthorityRemoved { + authority: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 12)] + #[doc = "A username was set for `who`."] + UsernameSet { + who: ::subxt::ext::subxt_core::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, + #[codec(index = 13)] + #[doc = "A username was queued, but `who` must accept it prior to `expiration`."] + UsernameQueued { + who: ::subxt::ext::subxt_core::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::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::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 15)] + #[doc = "A username was set as a primary and can be looked up from `who`."] + PrimaryUsernameSet { + who: ::subxt::ext::subxt_core::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::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::ext::subxt_core::utils::AccountId32, + username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + }, } } pub mod types { use super::runtime_types; #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, @@ -47160,10 +55960,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct BitFlags<_0>( - pub ::core::primitive::u64, - #[codec(skip)] pub ::core::marker::PhantomData<_0>, - ); + pub struct AuthorityProperties<_0> { + pub suffix: _0, + pub allocation: ::core::primitive::u32, + } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -47270,66 +56070,6 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum IdentityField { - #[codec(index = 1)] - Display, - #[codec(index = 2)] - Legal, - #[codec(index = 4)] - Web, - #[codec(index = 8)] - Riot, - #[codec(index = 16)] - Email, - #[codec(index = 32)] - PgpFingerprint, - #[codec(index = 64)] - Image, - #[codec(index = 128)] - Twitter, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct IdentityInfo { - pub additional: runtime_types::bounded_collections::bounded_vec::BoundedVec1<( - runtime_types::pallet_identity::types::Data, - runtime_types::pallet_identity::types::Data, - )>, - pub display: runtime_types::pallet_identity::types::Data, - pub legal: runtime_types::pallet_identity::types::Data, - pub web: runtime_types::pallet_identity::types::Data, - pub riot: runtime_types::pallet_identity::types::Data, - pub email: runtime_types::pallet_identity::types::Data, - pub pgp_fingerprint: ::core::option::Option<[::core::primitive::u8; 20usize]>, - pub image: runtime_types::pallet_identity::types::Data, - pub twitter: runtime_types::pallet_identity::types::Data, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] pub enum Judgement<_0> { #[codec(index = 0)] Unknown, @@ -47360,12 +56100,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct RegistrarInfo<_0, _1> { + pub struct RegistrarInfo<_0, _1, _2> { pub account: _1, pub fee: _0, - pub fields: runtime_types::pallet_identity::types::BitFlags< - runtime_types::pallet_identity::types::IdentityField, - >, + pub fields: _2, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -47381,155 +56119,17 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Registration<_0> { + pub struct Registration<_0, _2> { pub judgements: runtime_types::bounded_collections::bounded_vec::BoundedVec17<( ::core::primitive::u32, runtime_types::pallet_identity::types::Judgement<_0>, )>, pub deposit: _0, - pub info: runtime_types::pallet_identity::types::IdentityInfo, + pub info: _2, } } } - pub mod pallet_im_online { - use super::runtime_types; - pub mod pallet { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: 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: ::subxt::ext::subxt_core::alloc::vec::Vec<( - ::subxt::ext::subxt_core::utils::AccountId32, - (), - )>, - }, - } - } - pub mod sr25519 { - use super::runtime_types; - pub mod app_sr25519 { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); - } - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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 { @@ -47551,10 +56151,32 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::claim`]."] + #[doc = "Assign an previously unassigned index."] + #[doc = ""] + #[doc = "Payment: `Deposit` is reserved from the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be claimed. This must not be in use."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] claim { index: ::core::primitive::u32 }, #[codec(index = 1)] - #[doc = "See [`Pallet::transfer`]."] + #[doc = "Assign an index already owned by the sender to another account. The balance reservation"] + #[doc = "is effectively transferred to the new account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `index`: the index to be re-assigned. This must be owned by the sender."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] transfer { new: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -47563,10 +56185,33 @@ pub mod api { index: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::free`]."] + #[doc = "Free up an index owned by the sender."] + #[doc = ""] + #[doc = "Payment: Any previous deposit placed for the index is unreserved in the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must own the index."] + #[doc = ""] + #[doc = "- `index`: the index to be freed. This must be owned by the sender."] + #[doc = ""] + #[doc = "Emits `IndexFreed` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] free { index: ::core::primitive::u32 }, #[codec(index = 3)] - #[doc = "See [`Pallet::force_transfer`]."] + #[doc = "Force an index to an account. This doesn't require a deposit. If the index is already"] + #[doc = "held, then any deposit is reimbursed to its current owner."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `index`: the index to be (re-)assigned."] + #[doc = "- `new`: the new owner of the index. This function is a no-op if it is equal to sender."] + #[doc = "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred."] + #[doc = ""] + #[doc = "Emits `IndexAssigned` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] force_transfer { new: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -47576,7 +56221,18 @@ pub mod api { freeze: ::core::primitive::bool, }, #[codec(index = 4)] - #[doc = "See [`Pallet::freeze`]."] + #[doc = "Freeze an index so it will always point to the sender account. This consumes the"] + #[doc = "deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the signing account must have a"] + #[doc = "non-frozen account `index`."] + #[doc = ""] + #[doc = "- `index`: the index to be frozen in place."] + #[doc = ""] + #[doc = "Emits `IndexFrozen` if successful."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] freeze { index: ::core::primitive::u32 }, } #[derive( @@ -47665,7 +56321,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::reap_page`]."] reap_page { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "See [`Pallet::execute_overweight`]."] execute_overweight { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page : :: core :: primitive :: u32 , index : :: core :: primitive :: u32 , weight_limit : runtime_types :: sp_weights :: weight_v2 :: Weight , } , } + # [codec (index = 0)] # [doc = "Remove a page which has no more messages remaining to be processed or is stale."] reap_page { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page_index : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Execute an overweight message."] # [doc = ""] # [doc = "Temporary processing errors will be propagated whereas permanent errors are treated"] # [doc = "as success condition."] # [doc = ""] # [doc = "- `origin`: Must be `Signed`."] # [doc = "- `message_origin`: The origin from which the message to be executed arrived."] # [doc = "- `page`: The page in the queue in which the message to be executed is sitting."] # [doc = "- `index`: The index into the queue of the message to be executed."] # [doc = "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution"] # [doc = " of the message."] # [doc = ""] # [doc = "Benchmark complexity considerations: O(index + weight_limit)."] execute_overweight { message_origin : runtime_types :: polkadot_runtime_parachains :: inclusion :: AggregateMessageOrigin , page : :: core :: primitive :: u32 , index : :: core :: primitive :: u32 , weight_limit : runtime_types :: sp_weights :: weight_v2 :: Weight , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -47712,6 +56368,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 :: subxt_core :: ext :: codec :: Decode, @@ -47729,7 +56388,7 @@ pub mod api { )] #[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 :: ext :: subxt_core :: 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 :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, @@ -47780,7 +56439,7 @@ pub mod api { pub first_index: _0, pub first: _0, pub last: _0, - pub heap: runtime_types::bounded_collections::bounded_vec::BoundedVec5< + pub heap: runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, } @@ -47806,7 +56465,18 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::as_multi_threshold_1`]."] + #[doc = "Immediately dispatch a multi-signature call using a single approval from the caller."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `other_signatories`: The accounts (other than the sender) who are part of the"] + #[doc = "multi-signature, but do not participate in the approval process."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "O(Z + C) where Z is the length of the call and C its execution weight."] as_multi_threshold_1 { other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, @@ -47816,7 +56486,45 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "If there are enough, then dispatch the call."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call`: The call to be executed."] + #[doc = ""] + #[doc = "NOTE: Unless this is the final approval, you will generally want to use"] + #[doc = "`approve_as_multi` instead, since it only requires a hash of the call."] + #[doc = ""] + #[doc = "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise"] + #[doc = "on success, result is `Ok` and the result from the interior call, if it was executed,"] + #[doc = "may be found in the deposited `MultisigExecuted` event."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S + Z + Call)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- The weight of the `call`."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] as_multi { threshold: ::core::primitive::u16, other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec< @@ -47831,7 +56539,36 @@ pub mod api { max_weight: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 2)] - #[doc = "See [`Pallet::approve_as_multi`]."] + #[doc = "Register approval for a dispatch to be made from a deterministic composite account if"] + #[doc = "approved by a total of `threshold - 1` of `other_signatories`."] + #[doc = ""] + #[doc = "Payment: `DepositBase` will be reserved if this is the first approval, plus"] + #[doc = "`threshold` times `DepositFactor`. It is returned once this dispatch happens or"] + #[doc = "is cancelled."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is"] + #[doc = "not the first approval, then it must be `Some`, with the timepoint (block number and"] + #[doc = "transaction index) of the first approval transaction."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "NOTE: If this is the final approval, you will want to use `as_multi` instead."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- Up to one binary search and insert (`O(logS + S)`)."] + #[doc = "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove."] + #[doc = "- One event."] + #[doc = "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit"] + #[doc = " taken for its lifetime of `DepositBase + threshold * DepositFactor`."] approve_as_multi { threshold: ::core::primitive::u16, other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec< @@ -47844,7 +56581,27 @@ pub mod api { max_weight: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 3)] - #[doc = "See [`Pallet::cancel_as_multi`]."] + #[doc = "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously"] + #[doc = "for this operation will be unreserved on success."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `threshold`: The total number of approvals for this dispatch before it is executed."] + #[doc = "- `other_signatories`: The accounts (other than the sender) who can approve this"] + #[doc = "dispatch. May not be empty."] + #[doc = "- `timepoint`: The timepoint (block number and transaction index) of the first approval"] + #[doc = "transaction for this dispatch."] + #[doc = "- `call_hash`: The hash of the call to be executed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(S)`."] + #[doc = "- Up to one balance-reserve or unreserve operation."] + #[doc = "- One passthrough operation, one insert, both `O(S)` where `S` is the number of"] + #[doc = " signatories. `S` is capped by `MaxSignatories`, with weight being proportional."] + #[doc = "- One encode & hash, both of complexity `O(S)`."] + #[doc = "- One event."] + #[doc = "- I/O: 1 read `O(S)`, one remove."] + #[doc = "- Storage: removes one item."] cancel_as_multi { threshold: ::core::primitive::u16, other_signatories: ::subxt::ext::subxt_core::alloc::vec::Vec< @@ -48038,24 +56795,49 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::place_bid`]."] + #[doc = "Place a bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and account must have at least `amount` in free balance."] + #[doc = ""] + #[doc = "- `amount`: The amount of the bid; these funds will be reserved, and if/when"] + #[doc = " consolidated, removed. Must be at least `MinBid`."] + #[doc = "- `duration`: The number of periods before which the newly consolidated bid may be"] + #[doc = " thawed. Must be greater than 1 and no more than `QueueCount`."] + #[doc = ""] + #[doc = "Complexities:"] + #[doc = "- `Queues[duration].len()` (just take max)."] place_bid { #[codec(compact)] amount: ::core::primitive::u128, duration: ::core::primitive::u32, }, #[codec(index = 1)] - #[doc = "See [`Pallet::retract_bid`]."] + #[doc = "Retract a previously placed bid."] + #[doc = ""] + #[doc = "Origin must be Signed, and the account should have previously issued a still-active bid"] + #[doc = "of `amount` for `duration`."] + #[doc = ""] + #[doc = "- `amount`: The amount of the previous bid."] + #[doc = "- `duration`: The duration of the previous bid."] retract_bid { #[codec(compact)] amount: ::core::primitive::u128, duration: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::fund_deficit`]."] + #[doc = "Ensure we have sufficient funding for all potential payouts."] + #[doc = ""] + #[doc = "- `origin`: Must be accepted by `FundOrigin`."] fund_deficit, #[codec(index = 3)] - #[doc = "See [`Pallet::thaw_private`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as"] + #[doc = " well as any fungible counterpart."] + #[doc = "- `index`: The index of the receipt."] + #[doc = "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If"] + #[doc = " `None`, then all of it should be."] thaw_private { #[codec(compact)] index: ::core::primitive::u32, @@ -48064,19 +56846,24 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::thaw_communal`]."] + #[doc = "Reduce or remove an outstanding receipt, placing the according proportion of funds into"] + #[doc = "the account of the owner."] + #[doc = ""] + #[doc = "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart"] + #[doc = " for receipt `index`."] + #[doc = "- `index`: The index of the receipt."] thaw_communal { #[codec(compact)] index: ::core::primitive::u32, }, #[codec(index = 5)] - #[doc = "See [`Pallet::communify`]."] + #[doc = "Make a private receipt communal and create fungible counterparts for its owner."] communify { #[codec(compact)] index: ::core::primitive::u32, }, #[codec(index = 6)] - #[doc = "See [`Pallet::privatize`]."] + #[doc = "Make a communal receipt private and burn fungible counterparts from its owner."] privatize { #[codec(compact)] index: ::core::primitive::u32, @@ -48136,7 +56923,7 @@ pub mod api { #[doc = "The thaw throttle has been reached for this period."] Throttled, #[codec(index = 12)] - #[doc = "The operation would result in a receipt worth an insignficant value."] + #[doc = "The operation would result in a receipt worth an insignificant value."] MakesDust, #[codec(index = 13)] #[doc = "The receipt is already communal."] @@ -48204,7 +56991,7 @@ pub mod api { #[doc = "An automatic funding of the deficit was made."] Funded { deficit: ::core::primitive::u128 }, #[codec(index = 6)] - #[doc = "A receipt was transfered."] + #[doc = "A receipt was transferred."] Transferred { from: ::subxt::ext::subxt_core::utils::AccountId32, to: ::subxt::ext::subxt_core::utils::AccountId32, @@ -48302,6 +57089,67 @@ pub mod api { } } } + pub mod pallet_parameters { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Set the value of a parameter."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be"] + #[doc = "deleted by setting them to `None`."] + set_parameter { + key_value: runtime_types::rococo_runtime::RuntimeParameters, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "A Parameter was set."] + #[doc = ""] + #[doc = "Is also emitted when the value was not changed."] + Updated { + key: runtime_types::rococo_runtime::RuntimeParametersKey, + old_value: ::core::option::Option< + runtime_types::rococo_runtime::RuntimeParametersValue, + >, + new_value: ::core::option::Option< + runtime_types::rococo_runtime::RuntimeParametersValue, + >, + }, + } + } + } pub mod pallet_preimage { use super::runtime_types; pub mod pallet { @@ -48323,27 +57171,42 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::note_preimage`]."] + #[doc = "Register a preimage on-chain."] + #[doc = ""] + #[doc = "If the preimage was previously requested, no fees or deposits are taken for providing"] + #[doc = "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage."] note_preimage { bytes: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::unnote_preimage`]."] + #[doc = "Clear an unrequested preimage from the runtime storage."] + #[doc = ""] + #[doc = "If `len` is provided, then it will be a much cheaper operation."] + #[doc = ""] + #[doc = "- `hash`: The hash of the preimage to be removed from the store."] + #[doc = "- `len`: The length of the preimage of `hash`."] unnote_preimage { hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 2)] - #[doc = "See [`Pallet::request_preimage`]."] + #[doc = "Request a preimage be uploaded to the chain without paying any fees or deposits."] + #[doc = ""] + #[doc = "If the preimage requests has already been provided on-chain, we unreserve any deposit"] + #[doc = "a user may have paid, and take the control of the preimage out of their hands."] request_preimage { hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 3)] - #[doc = "See [`Pallet::unrequest_preimage`]."] + #[doc = "Clear a previously made request for a preimage."] + #[doc = ""] + #[doc = "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`."] unrequest_preimage { hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 4)] - #[doc = "See [`Pallet::ensure_updated`]."] + #[doc = "Ensure that the a bulk of pre-images is upgraded."] + #[doc = ""] + #[doc = "The caller pays no fee if at least 90% of pre-images were successfully updated."] ensure_updated { hashes: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::H256, @@ -48510,7 +57373,15 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::proxy`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorised for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] proxy { real: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48523,7 +57394,15 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::add_proxy`]."] + #[doc = "Register a proxy account for the sender that is able to make calls on its behalf."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to make a proxy."] + #[doc = "- `proxy_type`: The permissions allowed for this proxy account."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] add_proxy { delegate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48533,7 +57412,13 @@ pub mod api { delay: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::remove_proxy`]."] + #[doc = "Unregister a proxy account for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `proxy`: The account that the `caller` would like to remove as a proxy."] + #[doc = "- `proxy_type`: The permissions currently enabled for the removed proxy account."] remove_proxy { delegate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48543,17 +57428,54 @@ pub mod api { delay: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::remove_proxies`]."] + #[doc = "Unregister all proxy accounts for the sender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "WARNING: This may be called on accounts created by `pure`, however if done, then"] + #[doc = "the unreserved fees will be inaccessible. **All access to this account will be lost.**"] remove_proxies, #[codec(index = 4)] - #[doc = "See [`Pallet::create_pure`]."] + #[doc = "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and"] + #[doc = "initialize it with a proxy of `proxy_type` for `origin` sender."] + #[doc = ""] + #[doc = "Requires a `Signed` origin."] + #[doc = ""] + #[doc = "- `proxy_type`: The type of the proxy that the sender will be registered as over the"] + #[doc = "new account. This will almost always be the most permissive `ProxyType` possible to"] + #[doc = "allow for maximum flexibility."] + #[doc = "- `index`: A disambiguation index, in case this is called multiple times in the same"] + #[doc = "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just"] + #[doc = "want to use `0`."] + #[doc = "- `delay`: The announcement period required of the initial proxy. Will generally be"] + #[doc = "zero."] + #[doc = ""] + #[doc = "Fails with `Duplicate` if this has already been called in this transaction, from the"] + #[doc = "same sender, with the same parameters."] + #[doc = ""] + #[doc = "Fails if there are insufficient funds to pay for deposit."] create_pure { proxy_type: runtime_types::rococo_runtime::ProxyType, delay: ::core::primitive::u32, index: ::core::primitive::u16, }, #[codec(index = 5)] - #[doc = "See [`Pallet::kill_pure`]."] + #[doc = "Removes a previously spawned pure proxy."] + #[doc = ""] + #[doc = "WARNING: **All access to this account will be lost.** Any funds held in it will be"] + #[doc = "inaccessible."] + #[doc = ""] + #[doc = "Requires a `Signed` origin, and the sender account must have been created by a call to"] + #[doc = "`pure` with corresponding parameters."] + #[doc = ""] + #[doc = "- `spawner`: The account that originally called `pure` to create this account."] + #[doc = "- `index`: The disambiguation index originally passed to `pure`. Probably `0`."] + #[doc = "- `proxy_type`: The proxy type originally passed to `pure`."] + #[doc = "- `height`: The height of the chain when the call to `pure` was processed."] + #[doc = "- `ext_index`: The extrinsic index in which the call to `pure` was processed."] + #[doc = ""] + #[doc = "Fails with `NoPermission` in case the caller is not a previously created pure"] + #[doc = "account whose `pure` call has corresponding parameters."] kill_pure { spawner: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48567,7 +57489,21 @@ pub mod api { ext_index: ::core::primitive::u32, }, #[codec(index = 6)] - #[doc = "See [`Pallet::announce`]."] + #[doc = "Publish the hash of a proxy-call that will be made in the future."] + #[doc = ""] + #[doc = "This must be called some number of blocks before the corresponding `proxy` is attempted"] + #[doc = "if the delay associated with the proxy relationship is greater than zero."] + #[doc = ""] + #[doc = "No more than `MaxPending` announcements may be made at any one time."] + #[doc = ""] + #[doc = "This will take a deposit of `AnnouncementDepositFactor` as well as"] + #[doc = "`AnnouncementDepositBase` if there are no other pending announcements."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a proxy of `real`."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] announce { real: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48576,7 +57512,16 @@ pub mod api { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 7)] - #[doc = "See [`Pallet::remove_announcement`]."] + #[doc = "Remove a given announcement."] + #[doc = ""] + #[doc = "May be called by a proxy account to remove a call they previously announced and return"] + #[doc = "the deposit."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `call_hash`: The hash of the call to be made by the `real` account."] remove_announcement { real: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48585,7 +57530,16 @@ pub mod api { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 8)] - #[doc = "See [`Pallet::reject_announcement`]."] + #[doc = "Remove the given announcement of a delegate."] + #[doc = ""] + #[doc = "May be called by a target (proxied) account to remove a call that one of their delegates"] + #[doc = "(`delegate`) has announced they want to execute. The deposit is returned."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `delegate`: The account that previously announced the call."] + #[doc = "- `call_hash`: The hash of the call to be made."] reject_announcement { delegate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48594,7 +57548,17 @@ pub mod api { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 9)] - #[doc = "See [`Pallet::proxy_announced`]."] + #[doc = "Dispatch the given `call` from an account that the sender is authorized for through"] + #[doc = "`add_proxy`."] + #[doc = ""] + #[doc = "Removes any corresponding announcement(s)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `real`: The account that the proxy will make a call on behalf of."] + #[doc = "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call."] + #[doc = "- `call`: The call to be made by the `real` account."] proxy_announced { delegate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48760,7 +57724,12 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::add_member`]."] + #[doc = "Introduce a new member."] + #[doc = ""] + #[doc = "- `origin`: Must be the `AddOrigin`."] + #[doc = "- `who`: Account of non-member which will become a member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] add_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48768,7 +57737,12 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::promote_member`]."] + #[doc = "Increment the rank of an existing member by one."] + #[doc = ""] + #[doc = "- `origin`: Must be the `PromoteOrigin`."] + #[doc = "- `who`: Account of existing member."] + #[doc = ""] + #[doc = "Weight: `O(1)`"] promote_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48776,7 +57750,13 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::demote_member`]."] + #[doc = "Decrement the rank of an existing member by one. If the member is already at rank zero,"] + #[doc = "then they are removed entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `DemoteOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if the member's index is highest in its rank."] demote_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48784,7 +57764,13 @@ pub mod api { >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::remove_member`]."] + #[doc = "Remove the member entirely."] + #[doc = ""] + #[doc = "- `origin`: Must be the `RemoveOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero."] + #[doc = "- `min_rank`: The rank of the member or greater."] + #[doc = ""] + #[doc = "Weight: `O(min_rank)`."] remove_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48793,17 +57779,52 @@ pub mod api { min_rank: ::core::primitive::u16, }, #[codec(index = 4)] - #[doc = "See [`Pallet::vote`]."] + #[doc = "Add an aye or nay vote for the sender to the given proposal."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by a member account."] + #[doc = "- `poll`: Index of a poll which is ongoing."] + #[doc = "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise."] + #[doc = ""] + #[doc = "Transaction fees are be waived if the member is voting on any particular proposal"] + #[doc = "for the first time and the call is successful. Subsequent vote changes will charge a"] + #[doc = "fee."] + #[doc = ""] + #[doc = "Weight: `O(1)`, less if there was no previous vote on the poll by the member."] vote { poll: ::core::primitive::u32, aye: ::core::primitive::bool, }, #[codec(index = 5)] - #[doc = "See [`Pallet::cleanup_poll`]."] + #[doc = "Remove votes from the given poll. It must have ended."] + #[doc = ""] + #[doc = "- `origin`: Must be `Signed` by any account."] + #[doc = "- `poll_index`: Index of a poll which is completed and for which votes continue to"] + #[doc = " exist."] + #[doc = "- `max`: Maximum number of vote items from remove in this call."] + #[doc = ""] + #[doc = "Transaction fees are waived if the operation is successful."] + #[doc = ""] + #[doc = "Weight `O(max)` (less if there are fewer items to remove than `max`)."] cleanup_poll { poll_index: ::core::primitive::u32, max: ::core::primitive::u32, }, + #[codec(index = 6)] + #[doc = "Exchanges a member with a new account and the same existing rank."] + #[doc = ""] + #[doc = "- `origin`: Must be the `ExchangeOrigin`."] + #[doc = "- `who`: Account of existing member of rank greater than zero to be exchanged."] + #[doc = "- `new_who`: New Account of existing member of rank greater than zero to exchanged to."] + exchange_member { + who: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + new_who: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -48848,6 +57869,9 @@ pub mod api { #[codec(index = 8)] #[doc = "The origin is not sufficiently privileged to do the operation."] NoPermission, + #[codec(index = 9)] + #[doc = "The new member to exchange is the same as the old member"] + SameMember, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -48891,6 +57915,12 @@ pub mod api { vote: runtime_types::pallet_ranked_collective::VoteRecord, tally: runtime_types::pallet_ranked_collective::Tally, }, + #[codec(index = 4)] + #[doc = "The member `who` had their `AccountId` changed to `new_who`."] + MemberExchanged { + who: ::subxt::ext::subxt_core::utils::AccountId32, + new_who: ::subxt::ext::subxt_core::utils::AccountId32, + }, } } #[derive( @@ -48960,7 +57990,14 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::as_recovered`]."] + #[doc = "Send a call through a recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you want to make a call on-behalf-of."] + #[doc = "- `call`: The call you want to make with the recovered account."] as_recovered { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48971,7 +58008,14 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::set_recovered`]."] + #[doc = "Allow ROOT to bypass the recovery process and set an a rescuer account"] + #[doc = "for a lost account directly."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _ROOT_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The \"lost account\" to be recovered."] + #[doc = "- `rescuer`: The \"rescuer account\" which can call as the lost account."] set_recovered { lost: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48983,7 +58027,22 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::create_recovery`]."] + #[doc = "Create a recovery configuration for your account. This makes your account recoverable."] + #[doc = ""] + #[doc = "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance"] + #[doc = "will be reserved for storing the recovery configuration. This deposit is returned"] + #[doc = "in full when the user calls `remove_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be"] + #[doc = " ordered and contain no duplicate values."] + #[doc = "- `threshold`: The number of friends that must vouch for a recovery attempt before the"] + #[doc = " account can be recovered. Should be less than or equal to the length of the list of"] + #[doc = " friends."] + #[doc = "- `delay_period`: The number of blocks after a recovery attempt is initialized that"] + #[doc = " needs to pass before the account can be recovered."] create_recovery { friends: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, @@ -48992,7 +58051,17 @@ pub mod api { delay_period: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::initiate_recovery`]."] + #[doc = "Initiate the process for recovering a recoverable account."] + #[doc = ""] + #[doc = "Payment: `RecoveryDeposit` balance will be reserved for initiating the"] + #[doc = "recovery process. This deposit will always be repatriated to the account"] + #[doc = "trying to be recovered. See `close_recovery`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to recover. This account needs to be"] + #[doc = " recoverable (i.e. have a recovery configuration)."] initiate_recovery { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49000,7 +58069,18 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::vouch_recovery`]."] + #[doc = "Allow a \"friend\" of a recoverable account to vouch for an active recovery"] + #[doc = "process for that account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"friend\""] + #[doc = "for the recoverable account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `lost`: The lost account that you want to recover."] + #[doc = "- `rescuer`: The account trying to rescue the lost account that you want to vouch for."] + #[doc = ""] + #[doc = "The combination of these two parameters must point to an active recovery"] + #[doc = "process."] vouch_recovery { lost: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49012,7 +58092,15 @@ pub mod api { >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::claim_recovery`]."] + #[doc = "Allow a successful rescuer to claim their recovered account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\""] + #[doc = "who has successfully completed the account recovery process: collected"] + #[doc = "`threshold` or more vouches, waited `delay_period` blocks since initiation."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The lost account that you want to claim has been successfully recovered by"] + #[doc = " you."] claim_recovery { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49020,7 +58108,17 @@ pub mod api { >, }, #[codec(index = 6)] - #[doc = "See [`Pallet::close_recovery`]."] + #[doc = "As the controller of a recoverable account, close an active recovery"] + #[doc = "process for your account."] + #[doc = ""] + #[doc = "Payment: By calling this function, the recoverable account will receive"] + #[doc = "the recovery deposit `RecoveryDeposit` placed by the rescuer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account with an active recovery process for it."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `rescuer`: The account trying to rescue this recoverable account."] close_recovery { rescuer: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49028,10 +58126,26 @@ pub mod api { >, }, #[codec(index = 7)] - #[doc = "See [`Pallet::remove_recovery`]."] + #[doc = "Remove the recovery process for your account. Recovered accounts are still accessible."] + #[doc = ""] + #[doc = "NOTE: The user must make sure to call `close_recovery` on all active"] + #[doc = "recovery attempts before calling this function else it will fail."] + #[doc = ""] + #[doc = "Payment: By calling this function the recoverable account will unreserve"] + #[doc = "their recovery configuration deposit."] + #[doc = "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and must be a"] + #[doc = "recoverable account (i.e. has a recovery configuration)."] remove_recovery, #[codec(index = 8)] - #[doc = "See [`Pallet::cancel_recovered`]."] + #[doc = "Cancel the ability to use `as_recovered` for `account`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and registered to"] + #[doc = "be able to make calls on behalf of the recovered account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `account`: The recovered account you are able to call on-behalf-of."] cancel_recovered { account: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -49210,7 +58324,15 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::submit`]."] + #[doc = "Propose a referendum on a privileged action."] + #[doc = ""] + #[doc = "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds"] + #[doc = " available."] + #[doc = "- `proposal_origin`: The origin from which the proposal should be executed."] + #[doc = "- `proposal`: The proposal."] + #[doc = "- `enactment_moment`: The moment that the proposal should be enacted."] + #[doc = ""] + #[doc = "Emits `Submitted`."] submit { proposal_origin: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::OriginCaller, @@ -49225,28 +58347,74 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::place_decision_deposit`]."] + #[doc = "Post the Decision Deposit for a referendum."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` and the account must have funds available for the"] + #[doc = " referendum's track's Decision Deposit."] + #[doc = "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be"] + #[doc = " posted."] + #[doc = ""] + #[doc = "Emits `DecisionDepositPlaced`."] place_decision_deposit { index: ::core::primitive::u32 }, #[codec(index = 2)] - #[doc = "See [`Pallet::refund_decision_deposit`]."] + #[doc = "Refund the Decision Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Decision Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `DecisionDepositRefunded`."] refund_decision_deposit { index: ::core::primitive::u32 }, #[codec(index = 3)] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an ongoing referendum."] + #[doc = ""] + #[doc = "- `origin`: must be the `CancelOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Cancelled`."] cancel { index: ::core::primitive::u32 }, #[codec(index = 4)] - #[doc = "See [`Pallet::kill`]."] + #[doc = "Cancel an ongoing referendum and slash the deposits."] + #[doc = ""] + #[doc = "- `origin`: must be the `KillOrigin`."] + #[doc = "- `index`: The index of the referendum to be cancelled."] + #[doc = ""] + #[doc = "Emits `Killed` and `DepositSlashed`."] kill { index: ::core::primitive::u32 }, #[codec(index = 5)] - #[doc = "See [`Pallet::nudge_referendum`]."] + #[doc = "Advance a referendum onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `index`: the referendum to be advanced."] nudge_referendum { index: ::core::primitive::u32 }, #[codec(index = 6)] - #[doc = "See [`Pallet::one_fewer_deciding`]."] + #[doc = "Advance a track onto its next logical state. Only used internally."] + #[doc = ""] + #[doc = "- `origin`: must be `Root`."] + #[doc = "- `track`: the track to be advanced."] + #[doc = ""] + #[doc = "Action item for when there is now one fewer referendum in the deciding phase and the"] + #[doc = "`DecidingCount` is not yet updated. This means that we should either:"] + #[doc = "- begin deciding another referendum (and leave `DecidingCount` alone); or"] + #[doc = "- decrement `DecidingCount`."] one_fewer_deciding { track: ::core::primitive::u16 }, #[codec(index = 7)] - #[doc = "See [`Pallet::refund_submission_deposit`]."] + #[doc = "Refund the Submission Deposit for a closed referendum back to the depositor."] + #[doc = ""] + #[doc = "- `origin`: must be `Signed` or `Root`."] + #[doc = "- `index`: The index of a closed referendum whose Submission Deposit has not yet been"] + #[doc = " refunded."] + #[doc = ""] + #[doc = "Emits `SubmissionDepositRefunded`."] refund_submission_deposit { index: ::core::primitive::u32 }, #[codec(index = 8)] - #[doc = "See [`Pallet::set_metadata`]."] + #[doc = "Set or clear metadata of a referendum."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a"] + #[doc = " metadata of a finished referendum."] + #[doc = "- `index`: The index of a referendum to set or clear metadata for."] + #[doc = "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata."] set_metadata { index: ::core::primitive::u32, maybe_hash: ::core::option::Option<::subxt::ext::subxt_core::utils::H256>, @@ -49307,6 +58475,9 @@ pub mod api { #[codec(index = 12)] #[doc = "The preimage does not exist."] PreimageNotExist, + #[codec(index = 13)] + #[doc = "The preimage is stored with a different length than the one provided."] + PreimageStoredWithDifferentLength, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -49349,7 +58520,7 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "A deposit has been slashaed."] + #[doc = "A deposit has been slashed."] DepositSlashed { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, @@ -49475,7 +58646,7 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "A deposit has been slashaed."] + #[doc = "A deposit has been slashed."] DepositSlashed { who: ::subxt::ext::subxt_core::utils::AccountId32, amount: ::core::primitive::u128, @@ -49822,6 +58993,56 @@ pub mod api { } } } + pub mod pallet_root_testing { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "A dispatch that will fill the block weight up to the given ratio."] + fill_block { + ratio: runtime_types::sp_arithmetic::per_things::Perbill, + }, + #[codec(index = 1)] + trigger_defensive, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "Event dispatched when the trigger_defensive extrinsic is called."] + DefensiveTestCall, + } + } + } pub mod pallet_scheduler { use super::runtime_types; pub mod pallet { @@ -49843,7 +59064,7 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::schedule`]."] + #[doc = "Anonymously schedule a task."] schedule { when: ::core::primitive::u32, maybe_periodic: ::core::option::Option<( @@ -49856,13 +59077,13 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::cancel`]."] + #[doc = "Cancel an anonymously scheduled task."] cancel { when: ::core::primitive::u32, index: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::schedule_named`]."] + #[doc = "Schedule a named task."] schedule_named { id: [::core::primitive::u8; 32usize], when: ::core::primitive::u32, @@ -49876,12 +59097,12 @@ pub mod api { >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::cancel_named`]."] + #[doc = "Cancel a named scheduled task."] cancel_named { id: [::core::primitive::u8; 32usize], }, #[codec(index = 4)] - #[doc = "See [`Pallet::schedule_after`]."] + #[doc = "Anonymously schedule a task after a delay."] schedule_after { after: ::core::primitive::u32, maybe_periodic: ::core::option::Option<( @@ -49894,7 +59115,7 @@ pub mod api { >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::schedule_named_after`]."] + #[doc = "Schedule a named task after a delay."] schedule_named_after { id: [::core::primitive::u8; 32usize], after: ::core::primitive::u32, @@ -49907,6 +59128,52 @@ pub mod api { runtime_types::rococo_runtime::RuntimeCall, >, }, + #[codec(index = 6)] + #[doc = "Set a retry configuration for a task so that, in case its scheduled run fails, it will"] + #[doc = "be retried after `period` blocks, for a total amount of `retries` retries or until it"] + #[doc = "succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + set_retry { + task: (::core::primitive::u32, ::core::primitive::u32), + retries: ::core::primitive::u8, + period: ::core::primitive::u32, + }, + #[codec(index = 7)] + #[doc = "Set a retry configuration for a named task so that, in case its scheduled run fails, it"] + #[doc = "will be retried after `period` blocks, for a total amount of `retries` retries or until"] + #[doc = "it succeeds."] + #[doc = ""] + #[doc = "Tasks which need to be scheduled for a retry are still subject to weight metering and"] + #[doc = "agenda space, same as a regular task. If a periodic task fails, it will be scheduled"] + #[doc = "normally while the task is retrying."] + #[doc = ""] + #[doc = "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic"] + #[doc = "clones of the original task. Their retry configuration will be derived from the"] + #[doc = "original task's configuration, but will have a lower value for `remaining` than the"] + #[doc = "original `total_retries`."] + set_retry_named { + id: [::core::primitive::u8; 32usize], + retries: ::core::primitive::u8, + period: ::core::primitive::u32, + }, + #[codec(index = 8)] + #[doc = "Removes the retry configuration of a task."] + cancel_retry { + task: (::core::primitive::u32, ::core::primitive::u32), + }, + #[codec(index = 9)] + #[doc = "Cancel the retry configuration of a named task."] + cancel_retry_named { + id: [::core::primitive::u8; 32usize], + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -49977,18 +59244,39 @@ pub mod api { ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>, }, #[codec(index = 3)] + #[doc = "Set a retry configuration for some task."] + RetrySet { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + period: ::core::primitive::u32, + retries: ::core::primitive::u8, + }, + #[codec(index = 4)] + #[doc = "Cancel a retry configuration for some task."] + RetryCancelled { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + }, + #[codec(index = 5)] #[doc = "The call for the provided hash was not found so the task has been aborted."] CallUnavailable { task: (::core::primitive::u32, ::core::primitive::u32), id: ::core::option::Option<[::core::primitive::u8; 32usize]>, }, - #[codec(index = 4)] + #[codec(index = 6)] #[doc = "The given task was unable to be renewed since the agenda is full at that block."] PeriodicFailed { task: (::core::primitive::u32, ::core::primitive::u32), id: ::core::option::Option<[::core::primitive::u8; 32usize]>, }, - #[codec(index = 5)] + #[codec(index = 7)] + #[doc = "The given task was unable to be retried since the agenda is full at that block or there"] + #[doc = "was not enough weight to reschedule it."] + RetryFailed { + task: (::core::primitive::u32, ::core::primitive::u32), + id: ::core::option::Option<[::core::primitive::u8; 32usize]>, + }, + #[codec(index = 8)] #[doc = "The given task can never be executed since it is overweight."] PermanentlyOverweight { task: (::core::primitive::u32, ::core::primitive::u32), @@ -50006,6 +59294,21 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct RetryConfig<_0> { + pub total_retries: ::core::primitive::u8, + pub remaining: ::core::primitive::u8, + pub period: _0, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Scheduled<_0, _1, _2, _3, _4> { pub maybe_id: ::core::option::Option<_0>, pub priority: ::core::primitive::u8, @@ -50037,13 +59340,32 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::set_keys`]."] + #[doc = "Sets the session key(s) of the function caller to `keys`."] + #[doc = "Allows an account to set its session key prior to becoming a validator."] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be signed."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is"] + #[doc = " fixed."] set_keys { keys: runtime_types::rococo_runtime::SessionKeys, proof: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 1)] - #[doc = "See [`Pallet::purge_keys`]."] + #[doc = "Removes any session key(s) of the function caller."] + #[doc = ""] + #[doc = "This doesn't take effect until the next session."] + #[doc = ""] + #[doc = "The dispatch origin of this function must be Signed and the account must be either be"] + #[doc = "convertible to a validator ID using the chain's typical addressing system (this usually"] + #[doc = "means being a controller account) or directly convertible into a validator ID (which"] + #[doc = "usually means being a stash account)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` in number of key types. Actual cost depends on the number of length of"] + #[doc = " `T::Keys::key_ids()` which is fixed."] purge_keys, } #[derive( @@ -50124,13 +59446,43 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::bid`]."] + #[doc = "A user outside of the society can make a bid for entry."] + #[doc = ""] + #[doc = "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned"] + #[doc = "when the bid becomes a member, or if the bid calls `unbid`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `value`: A one time payment the bid would like to receive when joining the society."] bid { value: ::core::primitive::u128 }, #[codec(index = 1)] - #[doc = "See [`Pallet::unbid`]."] + #[doc = "A bidder can remove their bid for entry into society."] + #[doc = "By doing so, they will have their candidate deposit returned or"] + #[doc = "they will unvouch their voucher."] + #[doc = ""] + #[doc = "Payment: The bid deposit is unreserved if the user made a bid."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a bidder."] unbid, #[codec(index = 2)] - #[doc = "See [`Pallet::vouch`]."] + #[doc = "As a member, vouch for someone to join society by placing a bid on their behalf."] + #[doc = ""] + #[doc = "There is no deposit required to vouch for a new bid, but a member can only vouch for"] + #[doc = "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by"] + #[doc = "the suspension judgement origin, the member will be banned from vouching again."] + #[doc = ""] + #[doc = "As a vouching member, you can claim a tip if the candidate is accepted. This tip will"] + #[doc = "be paid as a portion of the reward the member will receive for joining the society."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The user who you would like to vouch for."] + #[doc = "- `value`: The total reward to be paid between you and the candidate if they become"] + #[doc = "a member in the society."] + #[doc = "- `tip`: Your cut of the total `value` payout when the candidate is inducted into"] + #[doc = "the society. Tips larger than `value` will be saturated upon payout."] vouch { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50140,10 +59492,23 @@ pub mod api { tip: ::core::primitive::u128, }, #[codec(index = 3)] - #[doc = "See [`Pallet::unvouch`]."] + #[doc = "As a vouching member, unvouch a bid. This only works while vouched user is"] + #[doc = "only a bidder (and not a candidate)."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a vouching member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `pos`: Position in the `Bids` vector of the bid who should be unvouched."] unvouch, #[codec(index = 4)] - #[doc = "See [`Pallet::vote`]."] + #[doc = "As a member, vote on a candidate."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `candidate`: The candidate that the member would like to bid on."] + #[doc = "- `approve`: A boolean which says if the candidate should be approved (`true`) or"] + #[doc = " rejected (`false`)."] vote { candidate: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50152,16 +59517,48 @@ pub mod api { approve: ::core::primitive::bool, }, #[codec(index = 5)] - #[doc = "See [`Pallet::defender_vote`]."] + #[doc = "As a member, vote on the defender."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `approve`: A boolean which says if the candidate should be"] + #[doc = "approved (`true`) or rejected (`false`)."] defender_vote { approve: ::core::primitive::bool }, #[codec(index = 6)] - #[doc = "See [`Pallet::payout`]."] + #[doc = "Transfer the first matured payout for the sender and remove it from the records."] + #[doc = ""] + #[doc = "NOTE: This extrinsic needs to be called multiple times to claim multiple matured"] + #[doc = "payouts."] + #[doc = ""] + #[doc = "Payment: The member will receive a payment equal to their first matured"] + #[doc = "payout to their free balance."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and a member with"] + #[doc = "payouts remaining."] payout, #[codec(index = 7)] - #[doc = "See [`Pallet::waive_repay`]."] + #[doc = "Repay the payment previously given to the member with the signed origin, remove any"] + #[doc = "pending payments, and elevate them from rank 0 to rank 1."] waive_repay { amount: ::core::primitive::u128 }, #[codec(index = 8)] - #[doc = "See [`Pallet::found_society`]."] + #[doc = "Found the society."] + #[doc = ""] + #[doc = "This is done as a discrete action in order to allow for the"] + #[doc = "pallet to be included into a running chain and can only be done once."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be from the _FounderSetOrigin_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `founder` - The first member and head of the newly founded society."] + #[doc = "- `max_members` - The initial max number of members for the society."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] + #[doc = "- `rules` - The rules of this society concerning membership."] + #[doc = ""] + #[doc = "Complexity: O(1)"] found_society { founder: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50174,10 +59571,27 @@ pub mod api { rules: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 9)] - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Dissolve the society and remove all members."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed, and the signing account must be both"] + #[doc = "the `Founder` and the `Head`. This implies that it may only be done when there is one"] + #[doc = "member."] dissolve, #[codec(index = 10)] - #[doc = "See [`Pallet::judge_suspended_member`]."] + #[doc = "Allow suspension judgement origin to make judgement on a suspended member."] + #[doc = ""] + #[doc = "If a suspended member is forgiven, we simply add them back as a member, not affecting"] + #[doc = "any of the existing storage items for that member."] + #[doc = ""] + #[doc = "If a suspended member is rejected, remove all associated storage items, including"] + #[doc = "their payouts, and remove any vouched bids they currently have."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed from the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who` - The suspended member to be judged."] + #[doc = "- `forgive` - A boolean representing whether the suspension judgement origin forgives"] + #[doc = " (`true`) or rejects (`false`) a suspended member."] judge_suspended_member { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50186,7 +59600,18 @@ pub mod api { forgive: ::core::primitive::bool, }, #[codec(index = 11)] - #[doc = "See [`Pallet::set_parameters`]."] + #[doc = "Change the maximum number of members in society and the maximum number of new candidates"] + #[doc = "in a single intake period."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be Signed by the Founder."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `max_members` - The maximum number of members for the society. This must be no less"] + #[doc = " than the current number of members."] + #[doc = "- `max_intake` - The maximum number of candidates per intake period."] + #[doc = "- `max_strikes`: The maximum number of strikes a member may get before they become"] + #[doc = " suspended and may only be reinstated by the founder."] + #[doc = "- `candidate_deposit`: The deposit required to make a bid for membership of the group."] set_parameters { max_members: ::core::primitive::u32, max_intake: ::core::primitive::u32, @@ -50194,37 +59619,55 @@ pub mod api { candidate_deposit: ::core::primitive::u128, }, #[codec(index = 12)] - #[doc = "See [`Pallet::punish_skeptic`]."] + #[doc = "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the"] + #[doc = "candidate."] punish_skeptic, #[codec(index = 13)] - #[doc = "See [`Pallet::claim_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the"] + #[doc = "the candidate, and only after the period for voting has ended."] claim_membership, #[codec(index = 14)] - #[doc = "See [`Pallet::bestow_membership`]."] + #[doc = "Transform an approved candidate into a member. Callable only by the Signed origin of the"] + #[doc = "Founder, only after the period for voting has ended and only when the candidate is not"] + #[doc = "clearly rejected."] bestow_membership { candidate: ::subxt::ext::subxt_core::utils::AccountId32, }, #[codec(index = 15)] - #[doc = "See [`Pallet::kick_candidate`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the Signed origin"] + #[doc = "of the Founder, only after the period for voting has ended, and only when they do not"] + #[doc = "have a clear approval."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] kick_candidate { candidate: ::subxt::ext::subxt_core::utils::AccountId32, }, #[codec(index = 16)] - #[doc = "See [`Pallet::resign_candidacy`]."] + #[doc = "Remove the candidate's application from the society. Callable only by the candidate."] + #[doc = ""] + #[doc = "Any bid deposit is lost and voucher is banned."] resign_candidacy, #[codec(index = 17)] - #[doc = "See [`Pallet::drop_candidate`]."] + #[doc = "Remove a `candidate`'s failed application from the society. Callable by any"] + #[doc = "signed origin but only at the end of the subsequent round and only for"] + #[doc = "a candidate with more rejections than approvals."] + #[doc = ""] + #[doc = "The bid deposit is lost and the voucher is banned."] drop_candidate { candidate: ::subxt::ext::subxt_core::utils::AccountId32, }, #[codec(index = 18)] - #[doc = "See [`Pallet::cleanup_candidacy`]."] + #[doc = "Remove up to `max` stale votes for the given `candidate`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the candidate's candidacy is ended."] cleanup_candidacy { candidate: ::subxt::ext::subxt_core::utils::AccountId32, max: ::core::primitive::u32, }, #[codec(index = 19)] - #[doc = "See [`Pallet::cleanup_challenge`]."] + #[doc = "Remove up to `max` stale votes for the defender in the given `challenge_round`."] + #[doc = ""] + #[doc = "May be called by any Signed origin, but only after the challenge round is ended."] cleanup_challenge { challenge_round: ::core::primitive::u32, max: ::core::primitive::u32, @@ -50633,14 +60076,36 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::control_auto_migration`]."] + #[doc = "Control the automatic migration."] + #[doc = ""] + #[doc = "The dispatch origin of this call must be [`Config::ControlOrigin`]."] control_auto_migration { maybe_config: ::core::option::Option< runtime_types::pallet_state_trie_migration::pallet::MigrationLimits, >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::continue_migrate`]."] + #[doc = "Continue the migration for the given `limits`."] + #[doc = ""] + #[doc = "The dispatch origin of this call can be any signed account."] + #[doc = ""] + #[doc = "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,"] + #[doc = "Upon successful execution, the transaction fee is returned."] + #[doc = ""] + #[doc = "The (potentially over-estimated) of the byte length of all the data read must be"] + #[doc = "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing"] + #[doc = "that executing the current `MigrationTask` with the given `limits` will not exceed"] + #[doc = "`real_size_upper` bytes of read data."] + #[doc = ""] + #[doc = "The `witness_task` is merely a helper to prevent the caller from being slashed or"] + #[doc = "generally trigger a migration that they do not intend. This parameter is just a message"] + #[doc = "from caller, saying that they believed `witness_task` was the last state of the"] + #[doc = "migration, and they only wish for their transaction to do anything, if this assumption"] + #[doc = "holds. In case `witness_task` does not match, the transaction fails."] + #[doc = ""] + #[doc = "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the"] + #[doc = "recommended way of doing this is to pass a `limit` that only bounds `count`, as the"] + #[doc = "`size` limit can always be overwritten."] continue_migrate { limits: runtime_types::pallet_state_trie_migration::pallet::MigrationLimits, real_size_upper: ::core::primitive::u32, @@ -50648,7 +60113,10 @@ pub mod api { runtime_types::pallet_state_trie_migration::pallet::MigrationTask, }, #[codec(index = 2)] - #[doc = "See [`Pallet::migrate_custom_top`]."] + #[doc = "Migrate the list of top keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] migrate_custom_top { keys: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, @@ -50656,7 +60124,12 @@ pub mod api { witness_size: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::migrate_custom_child`]."] + #[doc = "Migrate the list of child keys by iterating each of them one by one."] + #[doc = ""] + #[doc = "All of the given child keys must be present under one `child_root`."] + #[doc = ""] + #[doc = "This does not affect the global migration process tracker ([`MigrationProcess`]), and"] + #[doc = "should only be used in case any keys are leftover due to a bug."] migrate_custom_child { root: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, child_keys: ::subxt::ext::subxt_core::alloc::vec::Vec< @@ -50665,12 +60138,20 @@ pub mod api { total_size: ::core::primitive::u32, }, #[codec(index = 4)] - #[doc = "See [`Pallet::set_signed_max_limits`]."] + #[doc = "Set the maximum limit of the signed migration."] set_signed_max_limits { limits: runtime_types::pallet_state_trie_migration::pallet::MigrationLimits, }, #[codec(index = 5)] - #[doc = "See [`Pallet::force_set_progress`]."] + #[doc = "Forcefully set the progress the running migration."] + #[doc = ""] + #[doc = "This is only useful in one case: the next key to migrate is too big to be migrated with"] + #[doc = "a signed account, in a parachain context, and we simply want to skip it. A reasonable"] + #[doc = "example of this would be `:code:`, which is both very expensive to migrate, and commonly"] + #[doc = "used, so probably it is already migrated."] + #[doc = ""] + #[doc = "In case you mess things up, you can also, in principle, use this to reset the migration"] + #[doc = "process."] force_set_progress { progress_top: runtime_types::pallet_state_trie_migration::pallet::Progress, progress_child: @@ -50772,6 +60253,24 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] + pub enum HoldReason { + #[codec(index = 0)] + SlashForMigrate, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] pub enum MigrationCompute { #[codec(index = 0)] Signed, @@ -50837,7 +60336,7 @@ pub mod api { ToStart, #[codec(index = 1)] LastKey( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, ), @@ -50867,14 +60366,18 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::sudo`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] sudo { call: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::RuntimeCall, >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::sudo_unchecked_weight`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Root` origin."] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Sudo user to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] sudo_unchecked_weight { call: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::RuntimeCall, @@ -50882,7 +60385,8 @@ pub mod api { weight: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 2)] - #[doc = "See [`Pallet::set_key`]."] + #[doc = "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo"] + #[doc = "key."] set_key { new: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50890,7 +60394,10 @@ pub mod api { >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::sudo_as`]."] + #[doc = "Authenticates the sudo key and dispatches a function call with `Signed` origin from"] + #[doc = "a given account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] sudo_as { who: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -50900,6 +60407,11 @@ pub mod api { runtime_types::rococo_runtime::RuntimeCall, >, }, + #[codec(index = 4)] + #[doc = "Permanently removes the sudo key."] + #[doc = ""] + #[doc = "**This cannot be un-done.**"] + remove_key, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -50915,10 +60427,10 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: 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( @@ -50946,10 +60458,13 @@ pub mod api { #[codec(index = 1)] #[doc = "The sudo key has been updated."] KeyChanged { - old_sudoer: - ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>, + old: ::core::option::Option<::subxt::ext::subxt_core::utils::AccountId32>, + new: ::subxt::ext::subxt_core::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: @@ -50979,7 +60494,25 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::set`]."] + #[doc = "Set the current time."] + #[doc = ""] + #[doc = "This call should be invoked exactly once per block. It will panic at the finalization"] + #[doc = "phase, if this call hasn't been invoked by that time."] + #[doc = ""] + #[doc = "The timestamp should be greater than the previous one by the amount specified by"] + #[doc = "[`Config::MinimumPeriod`]."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware"] + #[doc = "that changing the complexity of this call could result exhausting the resources in a"] + #[doc = "block to execute any other calls."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)"] + #[doc = "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in"] + #[doc = " `on_finalize`)"] + #[doc = "- 1 event handler `on_timestamp_set`. Must be `O(1)`."] set { #[codec(compact)] now: ::core::primitive::u64, @@ -51127,7 +60660,22 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::propose_spend`]."] + #[doc = "Put forward a suggestion for spending."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] + #[doc = "It is returned once the proposal is awarded."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Proposed`] if successful."] propose_spend { #[codec(compact)] value: ::core::primitive::u128, @@ -51137,19 +60685,65 @@ pub mod api { >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::reject_proposal`]."] + #[doc = "Reject a proposed spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = "The original deposit will be slashed."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(1)"] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Rejected`] if successful."] reject_proposal { #[codec(compact)] proposal_id: ::core::primitive::u32, }, #[codec(index = 2)] - #[doc = "See [`Pallet::approve_proposal`]."] + #[doc = "Approve a proposal."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::ApproveOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] + #[doc = "deposit will be returned."] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = " - O(1)."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "No events are emitted from this dispatch."] approve_proposal { #[codec(compact)] proposal_id: ::core::primitive::u32, }, #[codec(index = 3)] - #[doc = "See [`Pallet::spend_local`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`."] + #[doc = ""] + #[doc = "### Details"] + #[doc = "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the"] + #[doc = "beneficiary."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The destination account for the transfer."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::SpendApproved`] if successful."] spend_local { #[codec(compact)] amount: ::core::primitive::u128, @@ -51159,13 +60753,58 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::remove_approval`]."] + #[doc = "Force a previously approved proposal to be removed from the approval queue."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The original deposit will no longer be returned."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `proposal_id`: The index of a proposal"] + #[doc = ""] + #[doc = "### Complexity"] + #[doc = "- O(A) where `A` is the number of approvals"] + #[doc = ""] + #[doc = "### Errors"] + #[doc = "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the"] + #[doc = " approval queue, i.e., the proposal has not been approved. This could also mean the"] + #[doc = " proposal does not exist altogether, thus there is no way it would have been approved"] + #[doc = " in the first place."] remove_approval { #[codec(compact)] proposal_id: ::core::primitive::u32, }, #[codec(index = 5)] - #[doc = "See [`Pallet::spend`]."] + #[doc = "Propose and approve a spend of treasury funds."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::SpendOrigin`] with the `Success` value being at least"] + #[doc = "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted"] + #[doc = "for assertion using the [`Config::BalanceConverter`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Create an approved spend for transferring a specific `amount` of `asset_kind` to a"] + #[doc = "designated beneficiary. The spend must be claimed using the `payout` dispatchable within"] + #[doc = "the [`Config::PayoutPeriod`]."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `asset_kind`: An indicator of the specific asset class to be spent."] + #[doc = "- `amount`: The amount to be transferred from the treasury to the `beneficiary`."] + #[doc = "- `beneficiary`: The beneficiary of the spend."] + #[doc = "- `valid_from`: The block number from which the spend can be claimed. It can refer to"] + #[doc = " the past if the resulting spend has not yet expired according to the"] + #[doc = " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after"] + #[doc = " approval."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendApproved`] if successful."] spend { asset_kind: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::polkadot_runtime_common::impls::VersionedLocatableAsset, @@ -51173,18 +60812,69 @@ pub mod api { #[codec(compact)] amount: ::core::primitive::u128, beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, + runtime_types::xcm::VersionedLocation, >, valid_from: ::core::option::Option<::core::primitive::u32>, }, #[codec(index = 6)] - #[doc = "See [`Pallet::payout`]."] + #[doc = "Claim a spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "Spends must be claimed within some temporal bounds. A spend may be claimed within one"] + #[doc = "[`Config::PayoutPeriod`] from the `valid_from` block."] + #[doc = "In case of a payout failure, the spend status must be updated with the `check_status`"] + #[doc = "dispatchable before retrying with the current function."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::Paid`] if successful."] payout { index: ::core::primitive::u32 }, #[codec(index = 7)] - #[doc = "See [`Pallet::check_status`]."] + #[doc = "Check the status of the spend and remove it from the storage if processed."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be signed."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "The status check is a prerequisite for retrying a failed payout."] + #[doc = "If a spend has either succeeded or expired, it is removed from the storage by this"] + #[doc = "function. In such instances, transaction fees are refunded."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::PaymentFailed`] if the spend payout has failed."] + #[doc = "Emits [`Event::SpendProcessed`] if the spend payout has succeed."] check_status { index: ::core::primitive::u32 }, #[codec(index = 8)] - #[doc = "See [`Pallet::void_spend`]."] + #[doc = "Void previously approved spend."] + #[doc = ""] + #[doc = "## Dispatch Origin"] + #[doc = ""] + #[doc = "Must be [`Config::RejectOrigin`]."] + #[doc = ""] + #[doc = "## Details"] + #[doc = ""] + #[doc = "A spend void is only possible if the payout has not been attempted yet."] + #[doc = ""] + #[doc = "### Parameters"] + #[doc = "- `index`: The spend index."] + #[doc = ""] + #[doc = "## Events"] + #[doc = ""] + #[doc = "Emits [`Event::AssetSpendVoided`] if successful."] void_spend { index: ::core::primitive::u32 }, } #[derive( @@ -51313,7 +61003,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, }, @@ -51412,14 +61102,43 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] + #[doc = ""] + #[doc = "This will return `Ok` in all circumstances. To determine the success of the batch, an"] + #[doc = "event is deposited. If a call failed and the batch was interrupted, then the"] + #[doc = "`BatchInterrupted` event is deposited, along with the number of successful calls made"] + #[doc = "and the error of the failed call. If all were successful, then the `BatchCompleted`"] + #[doc = "event is deposited."] batch { calls: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::rococo_runtime::RuntimeCall, >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::as_derivative`]."] + #[doc = "Send a call through an indexed pseudonym of the sender."] + #[doc = ""] + #[doc = "Filter from origin are passed along. The call will be dispatched with an origin which"] + #[doc = "use the same filter as the origin of this call."] + #[doc = ""] + #[doc = "NOTE: If you need to ensure that any account-based filtering is not honored (i.e."] + #[doc = "because you expect `proxy` to have been used prior in the call stack and you do not want"] + #[doc = "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`"] + #[doc = "in the Multisig pallet instead."] + #[doc = ""] + #[doc = "NOTE: Prior to version *12, this was called `as_limited_sub`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] as_derivative { index: ::core::primitive::u16, call: ::subxt::ext::subxt_core::alloc::boxed::Box< @@ -51427,14 +61146,31 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::batch_all`]."] + #[doc = "Send a batch of dispatch calls and atomically execute them."] + #[doc = "The whole transaction will rollback and fail if any of the calls failed."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatched without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] batch_all { calls: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::rococo_runtime::RuntimeCall, >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::dispatch_as`]."] + #[doc = "Dispatches a function call with a provided origin."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(1)."] dispatch_as { as_origin: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::OriginCaller, @@ -51444,14 +61180,31 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::force_batch`]."] + #[doc = "Send a batch of dispatch calls."] + #[doc = "Unlike `batch`, it allows errors and won't interrupt."] + #[doc = ""] + #[doc = "May be called from any origin except `None`."] + #[doc = ""] + #[doc = "- `calls`: The calls to be dispatched from the same origin. The number of call must not"] + #[doc = " exceed the constant: `batched_calls_limit` (available in constant metadata)."] + #[doc = ""] + #[doc = "If origin is root then the calls are dispatch without checking origin filter. (This"] + #[doc = "includes bypassing `frame_system::Config::BaseCallFilter`)."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- O(C) where C is the number of calls to be batched."] force_batch { calls: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::rococo_runtime::RuntimeCall, >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::with_weight`]."] + #[doc = "Dispatch a function call with a specified weight."] + #[doc = ""] + #[doc = "This function does not check the weight of the call, and instead allows the"] + #[doc = "Root origin to specify the weight of the call."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] with_weight { call: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::RuntimeCall, @@ -51546,10 +61299,28 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::vest`]."] + #[doc = "Unlock any vested funds of the sender account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_ and the sender must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] vest, #[codec(index = 1)] - #[doc = "See [`Pallet::vest_other`]."] + #[doc = "Unlock any vested funds of a `target` account."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account whose vested funds should be unlocked. Must have funds still"] + #[doc = "locked under this pallet."] + #[doc = ""] + #[doc = "Emits either `VestingCompleted` or `VestingUpdated`."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] vest_other { target: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -51557,7 +61328,19 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::vested_transfer`]."] + #[doc = "Create a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `target`: The account receiving the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] vested_transfer { target: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -51569,7 +61352,20 @@ pub mod api { >, }, #[codec(index = 3)] - #[doc = "See [`Pallet::force_vested_transfer`]."] + #[doc = "Force a vested transfer."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `source`: The account whose funds should be transferred."] + #[doc = "- `target`: The account that should be transferred the vested funds."] + #[doc = "- `schedule`: The vesting schedule attached to the transfer."] + #[doc = ""] + #[doc = "Emits `VestingCreated`."] + #[doc = ""] + #[doc = "NOTE: This will unlock all schedules through the current block."] + #[doc = ""] + #[doc = "## Complexity"] + #[doc = "- `O(1)`."] force_vested_transfer { source: ::subxt::ext::subxt_core::utils::MultiAddress< ::subxt::ext::subxt_core::utils::AccountId32, @@ -51585,11 +61381,45 @@ pub mod api { >, }, #[codec(index = 4)] - #[doc = "See [`Pallet::merge_schedules`]."] + #[doc = "Merge two vesting schedules together, creating a new vesting schedule that unlocks over"] + #[doc = "the highest possible start and end blocks. If both schedules have already started the"] + #[doc = "current block will be used as the schedule start; with the caveat that if one schedule"] + #[doc = "is finished by the current block, the other will be treated as the new merged schedule,"] + #[doc = "unmodified."] + #[doc = ""] + #[doc = "NOTE: If `schedule1_index == schedule2_index` this is a no-op."] + #[doc = "NOTE: This will unlock all schedules through the current block prior to merging."] + #[doc = "NOTE: If both schedules have ended by the current block, no new schedule will be created"] + #[doc = "and both will be removed."] + #[doc = ""] + #[doc = "Merged schedule attributes:"] + #[doc = "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,"] + #[doc = " current_block)`."] + #[doc = "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`."] + #[doc = "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Signed_."] + #[doc = ""] + #[doc = "- `schedule1_index`: index of the first schedule to merge."] + #[doc = "- `schedule2_index`: index of the second schedule to merge."] merge_schedules { schedule1_index: ::core::primitive::u32, schedule2_index: ::core::primitive::u32, }, + #[codec(index = 5)] + #[doc = "Force remove a vesting schedule"] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "- `target`: An account that has a vesting schedule"] + #[doc = "- `schedule_index`: The vesting schedule index that should be removed"] + force_remove_vesting_schedule { + target: ::subxt::ext::subxt_core::utils::MultiAddress< + ::subxt::ext::subxt_core::utils::AccountId32, + (), + >, + schedule_index: ::core::primitive::u32, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -51714,24 +61544,20 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::whitelist_call`]."] whitelist_call { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 1)] - #[doc = "See [`Pallet::remove_whitelisted_call`]."] remove_whitelisted_call { call_hash: ::subxt::ext::subxt_core::utils::H256, }, #[codec(index = 2)] - #[doc = "See [`Pallet::dispatch_whitelisted_call`]."] dispatch_whitelisted_call { call_hash: ::subxt::ext::subxt_core::utils::H256, call_encoded_len: ::core::primitive::u32, call_weight_witness: runtime_types::sp_weights::weight_v2::Weight, }, #[codec(index = 3)] - #[doc = "See [`Pallet::dispatch_whitelisted_call_with_preimage`]."] dispatch_whitelisted_call_with_preimage { call: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::rococo_runtime::RuntimeCall, @@ -51827,113 +61653,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - #[codec(index = 0)] - #[doc = "See [`Pallet::send`]."] - send { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - message: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedXcm1, - >, - }, - #[codec(index = 1)] - #[doc = "See [`Pallet::teleport_assets`]."] - teleport_assets { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - assets: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiAssets, - >, - fee_asset_item: ::core::primitive::u32, - }, - #[codec(index = 2)] - #[doc = "See [`Pallet::reserve_transfer_assets`]."] - reserve_transfer_assets { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - assets: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiAssets, - >, - fee_asset_item: ::core::primitive::u32, - }, - #[codec(index = 3)] - #[doc = "See [`Pallet::execute`]."] - execute { - message: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedXcm2, - >, - max_weight: runtime_types::sp_weights::weight_v2::Weight, - }, - #[codec(index = 4)] - #[doc = "See [`Pallet::force_xcm_version`]."] - force_xcm_version { - location: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >, - version: ::core::primitive::u32, - }, - #[codec(index = 5)] - #[doc = "See [`Pallet::force_default_xcm_version`]."] - force_default_xcm_version { - maybe_xcm_version: ::core::option::Option<::core::primitive::u32>, - }, - #[codec(index = 6)] - #[doc = "See [`Pallet::force_subscribe_version_notify`]."] - force_subscribe_version_notify { - location: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - }, - #[codec(index = 7)] - #[doc = "See [`Pallet::force_unsubscribe_version_notify`]."] - force_unsubscribe_version_notify { - location: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - }, - #[codec(index = 8)] - #[doc = "See [`Pallet::limited_reserve_transfer_assets`]."] - limited_reserve_transfer_assets { - dest: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - assets: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiAssets, - >, - 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: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - beneficiary: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiLocation, - >, - assets: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedMultiAssets, - >, - 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 = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm1 > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm2 > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v4 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = " notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = " `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = " to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = " and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = " assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = " from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = " the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = " mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = " This is usually as simple as:"] # [doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = " but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = " parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = " transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm1 > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -51965,7 +61685,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."] @@ -51993,8 +61713,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, @@ -52013,6 +61733,18 @@ pub mod api { #[codec(index = 19)] #[doc = "The unlock operation cannot succeed because there are still consumers of the lock."] InUse, + #[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 :: subxt_core :: ext :: codec :: Decode, @@ -52033,14 +61765,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::Xcm1, + origin: runtime_types::staging_xcm::v4::location::Location, + destination: runtime_types::staging_xcm::v4::location::Location, + message: runtime_types::staging_xcm::v4::Xcm1, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 2)] @@ -52048,7 +61780,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)] @@ -52056,7 +61788,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"] @@ -52099,10 +61831,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)] @@ -52114,7 +61846,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)] @@ -52124,31 +61856,31 @@ pub mod api { #[doc = "Some assets have been placed in an asset trap."] AssetsTrapped { hash: ::subxt::ext::subxt_core::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, }, @@ -52156,7 +61888,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)] @@ -52168,7 +61900,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)] @@ -52176,50 +61908,52 @@ 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::ext::subxt_core::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 = 23)] + #[doc = "A XCM version migration finished."] + VersionMigrationFinished { version: ::core::primitive::u32 }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52237,9 +61971,9 @@ pub mod api { )] 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 :: subxt_core :: ext :: codec :: Decode, @@ -52258,16 +61992,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)] @@ -52292,8 +62026,8 @@ pub mod api { )] 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::BoundedVec27<( _0, ::core::primitive::u128, @@ -52476,7 +62210,7 @@ pub mod api { } pub mod polkadot_primitives { use super::runtime_types; - pub mod v6 { + pub mod v7 { use super::runtime_types; pub mod assignment_app { use super::runtime_types; @@ -52494,7 +62228,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); } pub mod async_backing { use super::runtime_types; @@ -52530,7 +62264,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct BackingState < _0 , _1 > { pub constraints : runtime_types :: polkadot_primitives :: v6 :: async_backing :: Constraints < _1 > , pub pending_availability : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_primitives :: v6 :: async_backing :: CandidatePendingAvailability < _0 , _1 > > , } + pub struct BackingState < _0 , _1 > { pub constraints : runtime_types :: polkadot_primitives :: v7 :: async_backing :: Constraints < _1 > , pub pending_availability : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_primitives :: v7 :: async_backing :: CandidatePendingAvailability < _0 , _1 > > , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52548,9 +62282,9 @@ pub mod api { pub struct CandidatePendingAvailability<_0, _1> { pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash, pub descriptor: - runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, + runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, pub commitments: - runtime_types::polkadot_primitives::v6::CandidateCommitments<_1>, + runtime_types::polkadot_primitives::v7::CandidateCommitments<_1>, pub relay_parent_number: _1, pub max_pov_size: ::core::primitive::u32, } @@ -52568,7 +62302,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Constraints < _0 > { pub min_relay_parent_number : _0 , pub max_pov_size : :: core :: primitive :: u32 , pub max_code_size : :: core :: primitive :: u32 , pub ump_remaining : :: core :: primitive :: u32 , pub ump_remaining_bytes : :: core :: primitive :: u32 , pub max_ump_num_per_candidate : :: core :: primitive :: u32 , pub dmp_remaining_messages : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < _0 > , pub hrmp_inbound : runtime_types :: polkadot_primitives :: v6 :: async_backing :: InboundHrmpLimitations < _0 > , pub hrmp_channels_out : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: polkadot_parachain_primitives :: primitives :: Id , runtime_types :: polkadot_primitives :: v6 :: async_backing :: OutboundHrmpChannelLimitations ,) > , pub max_hrmp_num_per_candidate : :: core :: primitive :: u32 , pub required_parent : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub upgrade_restriction : :: core :: option :: Option < runtime_types :: polkadot_primitives :: v6 :: UpgradeRestriction > , pub future_validation_code : :: core :: option :: Option < (_0 , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > , } + pub struct Constraints < _0 > { pub min_relay_parent_number : _0 , pub max_pov_size : :: core :: primitive :: u32 , pub max_code_size : :: core :: primitive :: u32 , pub ump_remaining : :: core :: primitive :: u32 , pub ump_remaining_bytes : :: core :: primitive :: u32 , pub max_ump_num_per_candidate : :: core :: primitive :: u32 , pub dmp_remaining_messages : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < _0 > , pub hrmp_inbound : runtime_types :: polkadot_primitives :: v7 :: async_backing :: InboundHrmpLimitations < _0 > , pub hrmp_channels_out : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < (runtime_types :: polkadot_parachain_primitives :: primitives :: Id , runtime_types :: polkadot_primitives :: v7 :: async_backing :: OutboundHrmpChannelLimitations ,) > , pub max_hrmp_num_per_candidate : :: core :: primitive :: u32 , pub required_parent : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub upgrade_restriction : :: core :: option :: Option < runtime_types :: polkadot_primitives :: v7 :: UpgradeRestriction > , pub future_validation_code : :: core :: option :: Option < (_0 , runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash ,) > , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52621,7 +62355,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52636,7 +62370,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); + pub struct Signature(pub [::core::primitive::u8; 64usize]); } pub mod executor_params { use super::runtime_types; @@ -52665,12 +62399,12 @@ pub mod api { PrecheckingMaxMemory(::core::primitive::u64), #[codec(index = 5)] PvfPrepTimeout( - runtime_types::polkadot_primitives::v6::PvfPrepTimeoutKind, + runtime_types::polkadot_primitives::v7::PvfPrepKind, ::core::primitive::u64, ), #[codec(index = 6)] PvfExecTimeout( - runtime_types::polkadot_primitives::v6::PvfExecTimeoutKind, + runtime_types::polkadot_primitives::v7::PvfExecKind, ::core::primitive::u64, ), #[codec(index = 7)] @@ -52692,7 +62426,7 @@ pub mod api { )] pub struct ExecutorParams( pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParam, + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParam, >, ); } @@ -52714,9 +62448,9 @@ pub mod api { )] pub struct UncheckedSigned<_0, _1> { pub payload: _0, - pub validator_index: runtime_types::polkadot_primitives::v6::ValidatorIndex, + pub validator_index: runtime_types::polkadot_primitives::v7::ValidatorIndex, pub signature: - runtime_types::polkadot_primitives::v6::validator_app::Signature, + runtime_types::polkadot_primitives::v7::validator_app::Signature, #[codec(skip)] pub __ignore: ::core::marker::PhantomData<_1>, } @@ -52739,12 +62473,12 @@ pub mod api { )] pub struct DisputeProof { pub time_slot: - runtime_types::polkadot_primitives::v6::slashing::DisputesTimeSlot, + runtime_types::polkadot_primitives::v7::slashing::DisputesTimeSlot, pub kind: - runtime_types::polkadot_primitives::v6::slashing::SlashingOffenceKind, - pub validator_index: runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::slashing::SlashingOffenceKind, + pub validator_index: runtime_types::polkadot_primitives::v7::ValidatorIndex, pub validator_id: - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52797,11 +62531,11 @@ pub mod api { )] pub struct PendingSlashes { pub keys: ::subxt::ext::subxt_core::utils::KeyedVec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::ValidatorIndex, + runtime_types::polkadot_primitives::v7::validator_app::Public, >, pub kind: - runtime_types::polkadot_primitives::v6::slashing::SlashingOffenceKind, + runtime_types::polkadot_primitives::v7::slashing::SlashingOffenceKind, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52840,7 +62574,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52855,7 +62589,25 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Signature(pub runtime_types::sp_core::sr25519::Signature); + pub struct Signature(pub [::core::primitive::u8; 64usize]); + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ApprovalVotingParams { + pub max_approval_coalesce_count: ::core::primitive::u32, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -52893,9 +62645,9 @@ pub mod api { )] pub struct BackedCandidate<_0> { pub candidate: - runtime_types::polkadot_primitives::v6::CommittedCandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CommittedCandidateReceipt<_0>, pub validity_votes: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidityAttestation, + runtime_types::polkadot_primitives::v7::ValidityAttestation, >, pub validator_indices: ::subxt::ext::subxt_core::utils::bits::DecodedBits< ::core::primitive::u8, @@ -52918,11 +62670,11 @@ pub mod api { )] pub struct CandidateCommitments<_0> { pub upward_messages: - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec3< ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, >, pub horizontal_messages: - runtime_types::bounded_collections::bounded_vec::BoundedVec3< + runtime_types::bounded_collections::bounded_vec::BoundedVec4< runtime_types::polkadot_core_primitives::OutboundHrmpMessage< runtime_types::polkadot_parachain_primitives::primitives::Id, >, @@ -52949,7 +62701,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct CandidateDescriptor < _0 > { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub relay_parent : _0 , pub collator : runtime_types :: polkadot_primitives :: v6 :: collator_app :: Public , pub persisted_validation_data_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub pov_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub erasure_root : :: subxt :: ext :: subxt_core :: utils :: H256 , pub signature : runtime_types :: polkadot_primitives :: v6 :: collator_app :: Signature , pub para_head : :: subxt :: ext :: subxt_core :: utils :: H256 , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } + pub struct CandidateDescriptor < _0 > { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub relay_parent : _0 , pub collator : runtime_types :: polkadot_primitives :: v7 :: collator_app :: Public , pub persisted_validation_data_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub pov_hash : :: subxt :: ext :: subxt_core :: utils :: H256 , pub erasure_root : :: subxt :: ext :: subxt_core :: utils :: H256 , pub signature : runtime_types :: polkadot_primitives :: v7 :: collator_app :: Signature , pub para_head : :: subxt :: ext :: subxt_core :: utils :: H256 , pub validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -52967,23 +62719,23 @@ pub mod api { pub enum CandidateEvent<_0> { #[codec(index = 0)] CandidateBacked( - runtime_types::polkadot_primitives::v6::CandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CandidateReceipt<_0>, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, - runtime_types::polkadot_primitives::v6::GroupIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, + runtime_types::polkadot_primitives::v7::GroupIndex, ), #[codec(index = 1)] CandidateIncluded( - runtime_types::polkadot_primitives::v6::CandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CandidateReceipt<_0>, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, - runtime_types::polkadot_primitives::v6::GroupIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, + runtime_types::polkadot_primitives::v7::GroupIndex, ), #[codec(index = 2)] CandidateTimedOut( - runtime_types::polkadot_primitives::v6::CandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CandidateReceipt<_0>, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, ), } #[derive( @@ -53001,7 +62753,7 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct CandidateReceipt<_0> { - pub descriptor: runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, + pub descriptor: runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, pub commitments_hash: ::subxt::ext::subxt_core::utils::H256, } #[derive( @@ -53019,8 +62771,8 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct CommittedCandidateReceipt<_0> { - pub descriptor: runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, - pub commitments: runtime_types::polkadot_primitives::v6::CandidateCommitments< + pub descriptor: runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, + pub commitments: runtime_types::polkadot_primitives::v7::CandidateCommitments< ::core::primitive::u32, >, } @@ -53056,9 +62808,9 @@ pub mod api { )] pub enum CoreState<_0, _1> { #[codec(index = 0)] - Occupied(runtime_types::polkadot_primitives::v6::OccupiedCore<_0, _1>), + Occupied(runtime_types::polkadot_primitives::v7::OccupiedCore<_0, _1>), #[codec(index = 1)] - Scheduled(runtime_types::polkadot_primitives::v6::ScheduledCore), + Scheduled(runtime_types::polkadot_primitives::v7::ScheduledCore), #[codec(index = 2)] Free, } @@ -53104,9 +62856,9 @@ pub mod api { )] pub enum DisputeStatement { #[codec(index = 0)] - Valid(runtime_types::polkadot_primitives::v6::ValidDisputeStatementKind), + Valid(runtime_types::polkadot_primitives::v7::ValidDisputeStatementKind), #[codec(index = 1)] - Invalid(runtime_types::polkadot_primitives::v6::InvalidDisputeStatementKind), + Invalid(runtime_types::polkadot_primitives::v7::InvalidDisputeStatementKind), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -53126,9 +62878,9 @@ pub mod api { pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash, pub session: ::core::primitive::u32, pub statements: ::subxt::ext::subxt_core::alloc::vec::Vec<( - runtime_types::polkadot_primitives::v6::DisputeStatement, - runtime_types::polkadot_primitives::v6::ValidatorIndex, - runtime_types::polkadot_primitives::v6::validator_app::Signature, + runtime_types::polkadot_primitives::v7::DisputeStatement, + runtime_types::polkadot_primitives::v7::ValidatorIndex, + runtime_types::polkadot_primitives::v7::validator_app::Signature, )>, } #[derive( @@ -53218,18 +62970,18 @@ pub mod api { )] pub struct InherentData<_0> { pub bitfields: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::signed::UncheckedSigned< - runtime_types::polkadot_primitives::v6::AvailabilityBitfield, - runtime_types::polkadot_primitives::v6::AvailabilityBitfield, + runtime_types::polkadot_primitives::v7::signed::UncheckedSigned< + runtime_types::polkadot_primitives::v7::AvailabilityBitfield, + runtime_types::polkadot_primitives::v7::AvailabilityBitfield, >, >, pub backed_candidates: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::BackedCandidate< + runtime_types::polkadot_primitives::v7::BackedCandidate< ::subxt::ext::subxt_core::utils::H256, >, >, pub disputes: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::DisputeStatementSet, + runtime_types::polkadot_primitives::v7::DisputeStatementSet, >, pub parent_header: _0, } @@ -53267,21 +63019,21 @@ pub mod api { )] pub struct OccupiedCore<_0, _1> { pub next_up_on_available: ::core::option::Option< - runtime_types::polkadot_primitives::v6::ScheduledCore, + runtime_types::polkadot_primitives::v7::ScheduledCore, >, pub occupied_since: _1, pub time_out_at: _1, pub next_up_on_time_out: ::core::option::Option< - runtime_types::polkadot_primitives::v6::ScheduledCore, + runtime_types::polkadot_primitives::v7::ScheduledCore, >, pub availability: ::subxt::ext::subxt_core::utils::bits::DecodedBits< ::core::primitive::u8, ::subxt::ext::subxt_core::utils::bits::Lsb0, >, - pub group_responsible: runtime_types::polkadot_primitives::v6::GroupIndex, + pub group_responsible: runtime_types::polkadot_primitives::v7::GroupIndex, pub candidate_hash: runtime_types::polkadot_core_primitives::CandidateHash, pub candidate_descriptor: - runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, + runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -53340,7 +63092,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct PvfCheckStatement { pub accept : :: core :: primitive :: bool , pub subject : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub session_index : :: core :: primitive :: u32 , pub validator_index : runtime_types :: polkadot_primitives :: v6 :: ValidatorIndex , } + pub struct PvfCheckStatement { pub accept : :: core :: primitive :: bool , pub subject : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , pub session_index : :: core :: primitive :: u32 , pub validator_index : runtime_types :: polkadot_primitives :: v7 :: ValidatorIndex , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -53355,7 +63107,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum PvfExecTimeoutKind { + pub enum PvfExecKind { #[codec(index = 0)] Backing, #[codec(index = 1)] @@ -53375,11 +63127,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum PvfPrepTimeoutKind { + pub enum PvfPrepKind { #[codec(index = 0)] Precheck, #[codec(index = 1)] - Lenient, + Prepare, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -53398,7 +63150,7 @@ pub mod api { pub struct ScheduledCore { pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, pub collator: ::core::option::Option< - runtime_types::polkadot_primitives::v6::collator_app::Public, + runtime_types::polkadot_primitives::v7::collator_app::Public, >, } #[derive( @@ -53419,14 +63171,14 @@ pub mod api { pub session: ::core::primitive::u32, pub backing_validators_per_candidate: ::subxt::ext::subxt_core::alloc::vec::Vec<( - runtime_types::polkadot_primitives::v6::CandidateReceipt<_0>, + runtime_types::polkadot_primitives::v7::CandidateReceipt<_0>, ::subxt::ext::subxt_core::alloc::vec::Vec<( - runtime_types::polkadot_primitives::v6::ValidatorIndex, - runtime_types::polkadot_primitives::v6::ValidityAttestation, + runtime_types::polkadot_primitives::v7::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidityAttestation, )>, )>, pub disputes: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::DisputeStatementSet, + runtime_types::polkadot_primitives::v7::DisputeStatementSet, >, } #[derive( @@ -53445,24 +63197,24 @@ pub mod api { )] pub struct SessionInfo { pub active_validator_indices: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >, pub random_seed: [::core::primitive::u8; 32usize], pub dispute_period: ::core::primitive::u32, - pub validators: runtime_types::polkadot_primitives::v6::IndexedVec1< - runtime_types::polkadot_primitives::v6::ValidatorIndex, - runtime_types::polkadot_primitives::v6::validator_app::Public, + pub validators: runtime_types::polkadot_primitives::v7::IndexedVec1< + runtime_types::polkadot_primitives::v7::ValidatorIndex, + runtime_types::polkadot_primitives::v7::validator_app::Public, >, pub discovery_keys: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::sp_authority_discovery::app::Public, >, pub assignment_keys: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::assignment_app::Public, + runtime_types::polkadot_primitives::v7::assignment_app::Public, >, - pub validator_groups: runtime_types::polkadot_primitives::v6::IndexedVec2< - runtime_types::polkadot_primitives::v6::GroupIndex, + pub validator_groups: runtime_types::polkadot_primitives::v7::IndexedVec2< + runtime_types::polkadot_primitives::v7::GroupIndex, ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::ValidatorIndex, + runtime_types::polkadot_primitives::v7::ValidatorIndex, >, >, pub n_cores: ::core::primitive::u32, @@ -53533,6 +63285,12 @@ pub mod api { BackingValid(::subxt::ext::subxt_core::utils::H256), #[codec(index = 3)] ApprovalChecking, + #[codec(index = 4)] + ApprovalCheckingMultipleCandidates( + ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::polkadot_core_primitives::CandidateHash, + >, + ), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, @@ -53566,9 +63324,41 @@ pub mod api { )] pub enum ValidityAttestation { #[codec(index = 1)] - Implicit(runtime_types::polkadot_primitives::v6::validator_app::Signature), + Implicit(runtime_types::polkadot_primitives::v7::validator_app::Signature), #[codec(index = 2)] - Explicit(runtime_types::polkadot_primitives::v6::validator_app::Signature), + Explicit(runtime_types::polkadot_primitives::v7::validator_app::Signature), + } + } + pub mod vstaging { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct SchedulerParams<_0> { + pub group_rotation_frequency: _0, + pub paras_availability_period: _0, + pub max_validators_per_core: ::core::option::Option<_0>, + pub lookahead: ::core::primitive::u32, + pub num_cores: ::core::primitive::u32, + pub max_availability_timeouts: ::core::primitive::u32, + pub on_demand_queue_max_size: ::core::primitive::u32, + pub on_demand_target_queue_utilization: + runtime_types::sp_arithmetic::per_things::Perbill, + pub on_demand_fee_variability: + runtime_types::sp_arithmetic::per_things::Perbill, + pub on_demand_base_fee: ::core::primitive::u128, + pub ttl: _0, } } } @@ -53594,7 +63384,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::assign_perm_parachain_slot`]."] assign_perm_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 1)] # [doc = "See [`Pallet::assign_temp_parachain_slot`]."] assign_temp_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , lease_period_start : runtime_types :: polkadot_runtime_common :: assigned_slots :: SlotLeasePeriodStart , } , # [codec (index = 2)] # [doc = "See [`Pallet::unassign_parachain_slot`]."] unassign_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "See [`Pallet::set_max_permanent_slots`]."] set_max_permanent_slots { slots : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "See [`Pallet::set_max_temporary_slots`]."] set_max_temporary_slots { slots : :: core :: primitive :: u32 , } , } + # [codec (index = 0)] # [doc = "Assign a permanent parachain slot and immediately create a lease for it."] assign_perm_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 1)] # [doc = "Assign a temporary parachain slot. The function tries to create a lease for it"] # [doc = "immediately if `SlotLeasePeriodStart::Current` is specified, and if the number"] # [doc = "of currently active temporary slots is below `MaxTemporarySlotPerLeasePeriod`."] assign_temp_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , lease_period_start : runtime_types :: polkadot_runtime_common :: assigned_slots :: SlotLeasePeriodStart , } , # [codec (index = 2)] # [doc = "Unassign a permanent or temporary parachain slot"] unassign_parachain_slot { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "Sets the storage value [`MaxPermanentSlots`]."] set_max_permanent_slots { slots : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Sets the storage value [`MaxTemporarySlots`]."] set_max_temporary_slots { slots : :: core :: primitive :: u32 , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -53736,7 +63526,11 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::new_auction`]."] + #[doc = "Create a new auction."] + #[doc = ""] + #[doc = "This can only happen when there isn't already an auction in progress and may only be"] + #[doc = "called by the root origin. Accepts the `duration` of this auction and the"] + #[doc = "`lease_period_index` of the initial lease period of the four that are to be auctioned."] new_auction { #[codec(compact)] duration: ::core::primitive::u32, @@ -53744,7 +63538,22 @@ pub mod api { lease_period_index: ::core::primitive::u32, }, #[codec(index = 1)] - #[doc = "See [`Pallet::bid`]."] + #[doc = "Make a new bid from an account (including a parachain account) for deploying a new"] + #[doc = "parachain."] + #[doc = ""] + #[doc = "Multiple simultaneous bids from the same bidder are allowed only as long as all active"] + #[doc = "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted."] + #[doc = ""] + #[doc = "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and"] + #[doc = "funded by) the same account."] + #[doc = "- `auction_index` is the index of the auction to bid on. Should just be the present"] + #[doc = "value of `AuctionCounter`."] + #[doc = "- `first_slot` is the first lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `last_slot` is the last lease period index of the range to bid on. This is the"] + #[doc = "absolute lease period index value, not an auction-specific offset."] + #[doc = "- `amount` is the amount to bid to be held as deposit for the parachain should the"] + #[doc = "bid win. This amount is held throughout the range."] bid { #[codec(compact)] para: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -53758,7 +63567,9 @@ pub mod api { amount: ::core::primitive::u128, }, #[codec(index = 2)] - #[doc = "See [`Pallet::cancel_auction`]."] + #[doc = "Cancel an in-progress auction."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] cancel_auction, } #[derive( @@ -53890,14 +63701,51 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::claim`]."] + #[doc = "Make a claim to collect your DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to claim is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] claim { dest: ::subxt::ext::subxt_core::utils::AccountId32, ethereum_signature: runtime_types::polkadot_runtime_common::claims::EcdsaSignature, }, #[codec(index = 1)] - #[doc = "See [`Pallet::mint_claim`]."] + #[doc = "Mint a new claim to collect DOTs."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _Root_."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `who`: The Ethereum address allowed to collect this claim."] + #[doc = "- `value`: The number of DOTs that will be claimed."] + #[doc = "- `vesting_schedule`: An optional vesting schedule for these DOTs."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "We assume worst case that both vesting and statement is being inserted."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] mint_claim { who: runtime_types::polkadot_runtime_common::claims::EthereumAddress, value: ::core::primitive::u128, @@ -53911,7 +63759,33 @@ pub mod api { >, }, #[codec(index = 2)] - #[doc = "See [`Pallet::claim_attest`]."] + #[doc = "Make a claim to collect your DOTs by signing a statement."] + #[doc = ""] + #[doc = "The dispatch origin for this call must be _None_."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to `claim_attest` is deemed valid if the signature provided matches"] + #[doc = "the expected signed message of:"] + #[doc = ""] + #[doc = "> Ethereum Signed Message:"] + #[doc = "> (configured prefix string)(address)(statement)"] + #[doc = ""] + #[doc = "and `address` matches the `dest` account; the `statement` must match that which is"] + #[doc = "expected according to your purchase arrangement."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `dest`: The destination account to payout the claim."] + #[doc = "- `ethereum_signature`: The signature of an ethereum signed message matching the format"] + #[doc = " described above."] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to validate unsigned `claim_attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] claim_attest { dest: ::subxt::ext::subxt_core::utils::AccountId32, ethereum_signature: @@ -53920,13 +63794,30 @@ pub mod api { ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 3)] - #[doc = "See [`Pallet::attest`]."] + #[doc = "Attest to a statement, needed to finalize the claims process."] + #[doc = ""] + #[doc = "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a"] + #[doc = "`SignedExtension`."] + #[doc = ""] + #[doc = "Unsigned Validation:"] + #[doc = "A call to attest is deemed valid if the sender has a `Preclaim` registered"] + #[doc = "and provides a `statement` which is expected for the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `statement`: The identity of the statement which is being attested to in the"] + #[doc = " signature."] + #[doc = ""] + #[doc = ""] + #[doc = "The weight of this call is invariant over the input parameters."] + #[doc = "Weight includes logic to do pre-validation on `attest` call."] + #[doc = ""] + #[doc = "Total Complexity: O(1)"] + #[doc = ""] attest { statement: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 4)] - #[doc = "See [`Pallet::move_claim`]."] move_claim { old: runtime_types::polkadot_runtime_common::claims::EthereumAddress, new: runtime_types::polkadot_runtime_common::claims::EthereumAddress, @@ -54069,7 +63960,11 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::create`]."] + #[doc = "Create a new crowdloaning campaign for a parachain slot with the given lease period"] + #[doc = "range."] + #[doc = ""] + #[doc = "This applies a lock to your parachain configuration, ensuring that it cannot be changed"] + #[doc = "by the parachain manager."] create { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54085,7 +63980,8 @@ pub mod api { ::core::option::Option, }, #[codec(index = 1)] - #[doc = "See [`Pallet::contribute`]."] + #[doc = "Contribute to a crowd sale. This will transfer some balance over to fund a parachain"] + #[doc = "slot. It will be withdrawable when the crowdloan has ended and the funds are unused."] contribute { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54095,26 +63991,48 @@ pub mod api { ::core::option::Option, }, #[codec(index = 2)] - #[doc = "See [`Pallet::withdraw`]."] + #[doc = "Withdraw full balance of a specific contributor."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] + #[doc = ""] + #[doc = "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,"] + #[doc = "then the retirement flag must be set. For a fund to be ready for retirement, then:"] + #[doc = "- it must not already be in retirement;"] + #[doc = "- the amount of raised funds must be bigger than the _free_ balance of the account;"] + #[doc = "- and either:"] + #[doc = " - the block number must be at least `end`; or"] + #[doc = " - the current lease period must be greater than the fund's `last_period`."] + #[doc = ""] + #[doc = "In this case, the fund's retirement flag is set and its `end` is reset to the current"] + #[doc = "block number."] + #[doc = ""] + #[doc = "- `who`: The account whose contribution should be withdrawn."] + #[doc = "- `index`: The parachain to whose crowdloan the contribution was made."] withdraw { who: ::subxt::ext::subxt_core::utils::AccountId32, #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 3)] - #[doc = "See [`Pallet::refund`]."] + #[doc = "Automatically refund contributors of an ended crowdloan."] + #[doc = "Due to weight restrictions, this function may need to be called multiple"] + #[doc = "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time."] + #[doc = ""] + #[doc = "Origin must be signed, but can come from anyone."] refund { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 4)] - #[doc = "See [`Pallet::dissolve`]."] + #[doc = "Remove a fund after the retirement period has ended and all funds have been returned."] dissolve { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 5)] - #[doc = "See [`Pallet::edit`]."] + #[doc = "Edit the configuration for an in-progress crowdloan."] + #[doc = ""] + #[doc = "Can only be called by Root origin."] edit { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54130,18 +64048,24 @@ pub mod api { ::core::option::Option, }, #[codec(index = 6)] - #[doc = "See [`Pallet::add_memo`]."] + #[doc = "Add an optional memo to an existing crowdloan contribution."] + #[doc = ""] + #[doc = "Origin must be Signed, and the user must have contributed to the crowdloan."] add_memo { index: runtime_types::polkadot_parachain_primitives::primitives::Id, memo: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, }, #[codec(index = 7)] - #[doc = "See [`Pallet::poke`]."] + #[doc = "Poke the fund into `NewRaise`"] + #[doc = ""] + #[doc = "Origin must be Signed, and the fund has non-zero raise."] poke { index: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 8)] - #[doc = "See [`Pallet::contribute_all`]."] + #[doc = "Contribute your entire balance to a crowd sale. This will transfer the entire balance of"] + #[doc = "a user over to fund a parachain slot. It will be withdrawable when the crowdloan has"] + #[doc = "ended and the funds are unused."] contribute_all { #[codec(compact)] index: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54367,6 +64291,71 @@ pub mod api { Ending(_0), } } + pub mod identity_migrator { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Reap the `IdentityInfo` of `who` from the Identity pallet of `T`, unreserving any"] + #[doc = "deposits held and removing storage items associated with `who`."] + reap_identity { + who: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 1)] + #[doc = "Update the deposit of `who`. Meant to be called by the system with an XCM `Transact`"] + #[doc = "Instruction."] + poke_deposit { + who: ::subxt::ext::subxt_core::utils::AccountId32, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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::ext::subxt_core::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::ext::subxt_core::utils::AccountId32, + identity: ::core::primitive::u128, + subs: ::core::primitive::u128, + }, + } + } + } pub mod impls { use super::runtime_types; #[derive( @@ -54389,6 +64378,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 { @@ -54411,7 +64405,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::register`]."] register { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "See [`Pallet::force_register`]."] force_register { who : :: subxt :: ext :: subxt_core :: utils :: AccountId32 , deposit : :: core :: primitive :: u128 , id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 2)] # [doc = "See [`Pallet::deregister`]."] deregister { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "See [`Pallet::swap`]."] swap { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , other : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 4)] # [doc = "See [`Pallet::remove_lock`]."] remove_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "See [`Pallet::reserve`]."] reserve , # [codec (index = 6)] # [doc = "See [`Pallet::add_lock`]."] add_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 7)] # [doc = "See [`Pallet::schedule_code_upgrade`]."] schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 8)] # [doc = "See [`Pallet::set_current_head`]."] set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , } + # [codec (index = 0)] # [doc = "Register head data and validation code for a reserved Para Id."] # [doc = ""] # [doc = "## Arguments"] # [doc = "- `origin`: Must be called by a `Signed` origin."] # [doc = "- `id`: The para ID. Must be owned/managed by the `origin` signing account."] # [doc = "- `genesis_head`: The genesis head data of the parachain/thread."] # [doc = "- `validation_code`: The initial validation code of the parachain/thread."] # [doc = ""] # [doc = "## Deposits/Fees"] # [doc = "The account with the originating signature must reserve a deposit."] # [doc = ""] # [doc = "The deposit is required to cover the costs associated with storing the genesis head"] # [doc = "data and the validation code."] # [doc = "This accounts for the potential to store validation code of a size up to the"] # [doc = "`max_code_size`, as defined in the configuration pallet"] # [doc = ""] # [doc = "Anything already reserved previously for this para ID is accounted for."] # [doc = ""] # [doc = "## Events"] # [doc = "The `Registered` event is emitted in case of success."] register { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "Force the registration of a Para Id on the relay chain."] # [doc = ""] # [doc = "This function must be called by a Root origin."] # [doc = ""] # [doc = "The deposit taken can be specified for this registration. Any `ParaId`"] # [doc = "can be registered, including sub-1000 IDs which are System Parachains."] force_register { who : :: subxt :: ext :: subxt_core :: utils :: AccountId32 , deposit : :: core :: primitive :: u128 , id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , genesis_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 2)] # [doc = "Deregister a Para Id, freeing all data and returning any deposit."] # [doc = ""] # [doc = "The caller must be Root, the `para` owner, or the `para` itself. The para must be an"] # [doc = "on-demand parachain."] deregister { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "Swap a lease holding parachain with another parachain, either on-demand or lease"] # [doc = "holding."] # [doc = ""] # [doc = "The origin must be Root, the `para` owner, or the `para` itself."] # [doc = ""] # [doc = "The swap will happen only if there is already an opposite swap pending. If there is not,"] # [doc = "the swap will be stored in the pending swaps map, ready for a later confirmatory swap."] # [doc = ""] # [doc = "The `ParaId`s remain mapped to the same head data and code so external code can rely on"] # [doc = "`ParaId` to be a long-term identifier of a notional \"parachain\". However, their"] # [doc = "scheduling info (i.e. whether they're an on-demand parachain or lease holding"] # [doc = "parachain), auction information and the auction deposit are switched."] swap { id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , other : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 4)] # [doc = "Remove a manager lock from a para. This will allow the manager of a"] # [doc = "previously locked para to deregister or swap a para without using governance."] # [doc = ""] # [doc = "Can only be called by the Root origin or the parachain."] remove_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "Reserve a Para Id on the relay chain."] # [doc = ""] # [doc = "This function will reserve a new Para Id to be owned/managed by the origin account."] # [doc = "The origin account is able to register head data and validation code using `register` to"] # [doc = "create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then"] # [doc = "be upgraded to a lease holding parachain."] # [doc = ""] # [doc = "## Arguments"] # [doc = "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new"] # [doc = " para ID."] # [doc = ""] # [doc = "## Deposits/Fees"] # [doc = "The origin must reserve a deposit of `ParaDeposit` for the registration."] # [doc = ""] # [doc = "## Events"] # [doc = "The `Reserved` event is emitted in case of success, which provides the ID reserved for"] # [doc = "use."] reserve , # [codec (index = 6)] # [doc = "Add a manager lock from a para. This will prevent the manager of a"] # [doc = "para to deregister or swap a para."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] add_lock { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 7)] # [doc = "Schedule a parachain upgrade."] # [doc = ""] # [doc = "This will kick off a check of `new_code` by all validators. After the majority of the"] # [doc = "validators have reported on the validity of the code, the code will either be enacted"] # [doc = "or the upgrade will be rejected. If the code will be enacted, the current code of the"] # [doc = "parachain will be overwritten directly. This means that any PoV will be checked by this"] # [doc = "new code. The parachain itself will not be informed explicitly that the validation code"] # [doc = "has changed."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 8)] # [doc = "Set the parachain's current head."] # [doc = ""] # [doc = "Can be called by Root, the parachain, or the parachain manager if the parachain is"] # [doc = "unlocked."] set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -54466,8 +64460,8 @@ pub mod api { #[doc = "The ID given for registration has not been reserved."] NotReserved, #[codec(index = 12)] - #[doc = "Registering parachain with empty code is not allowed."] - EmptyCode, + #[doc = "The validation code is invalid."] + InvalidCode, #[codec(index = 13)] #[doc = "Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras"] #[doc = "are correct for the swap to work."] @@ -54551,29 +64545,36 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::sudo_schedule_para_initialize`]."] + #[doc = "Schedule a para to be initialized at the start of the next session."] + #[doc = ""] + #[doc = "This should only be used for TESTING and not on PRODUCTION chains. It automatically"] + #[doc = "assigns Coretime to the chain and increases the number of cores. Thus, there is no"] + #[doc = "running coretime chain required."] sudo_schedule_para_initialize { id: runtime_types::polkadot_parachain_primitives::primitives::Id, genesis: runtime_types::polkadot_runtime_parachains::paras::ParaGenesisArgs, }, #[codec(index = 1)] - #[doc = "See [`Pallet::sudo_schedule_para_cleanup`]."] + #[doc = "Schedule a para to be cleaned up at the start of the next session."] sudo_schedule_para_cleanup { id: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 2)] - #[doc = "See [`Pallet::sudo_schedule_parathread_upgrade`]."] + #[doc = "Upgrade a parathread (on-demand parachain) to a lease holding parachain"] sudo_schedule_parathread_upgrade { id: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 3)] - #[doc = "See [`Pallet::sudo_schedule_parachain_downgrade`]."] + #[doc = "Downgrade a lease holding parachain to an on-demand parachain"] sudo_schedule_parachain_downgrade { id: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 4)] - #[doc = "See [`Pallet::sudo_queue_downward_xcm`]."] + #[doc = "Send a downward XCM to the given para."] + #[doc = ""] + #[doc = "The given parachain should exist and the payload should not exceed the preconfigured"] + #[doc = "size `config.max_downward_message_size`."] sudo_queue_downward_xcm { id: runtime_types::polkadot_parachain_primitives::primitives::Id, xcm: ::subxt::ext::subxt_core::alloc::boxed::Box< @@ -54581,7 +64582,10 @@ pub mod api { >, }, #[codec(index = 5)] - #[doc = "See [`Pallet::sudo_establish_hrmp_channel`]."] + #[doc = "Forcefully establish a channel from the sender to the recipient."] + #[doc = ""] + #[doc = "This is equivalent to sending an `Hrmp::hrmp_init_open_channel` extrinsic followed by"] + #[doc = "`Hrmp::hrmp_accept_open_channel`."] sudo_establish_hrmp_channel { sender: runtime_types::polkadot_parachain_primitives::primitives::Id, recipient: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54630,6 +64634,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, } } } @@ -54654,7 +64661,10 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::force_lease`]."] + #[doc = "Just a connect into the `lease_out` call, in case Root wants to force some lease to"] + #[doc = "happen independently of any other on-chain mechanism to use it."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] force_lease { para: runtime_types::polkadot_parachain_primitives::primitives::Id, leaser: ::subxt::ext::subxt_core::utils::AccountId32, @@ -54663,12 +64673,20 @@ pub mod api { period_count: ::core::primitive::u32, }, #[codec(index = 1)] - #[doc = "See [`Pallet::clear_all_leases`]."] + #[doc = "Clear all leases for a Para Id, refunding any deposits back to the original owners."] + #[doc = ""] + #[doc = "The dispatch origin for this call must match `T::ForceOrigin`."] clear_all_leases { para: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 2)] - #[doc = "See [`Pallet::trigger_onboard`]."] + #[doc = "Try to onboard a parachain that has a lease for the current lease period."] + #[doc = ""] + #[doc = "This function can be useful if there was some state issue with a para that should"] + #[doc = "have onboarded, but was unable to. As long as they have a lease period, we can"] + #[doc = "let them onboard from here."] + #[doc = ""] + #[doc = "Origin must be signed, but can be called by anyone."] trigger_onboard { para: runtime_types::polkadot_parachain_primitives::primitives::Id, }, @@ -54735,6 +64753,153 @@ 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct PartsOf57600(pub ::core::primitive::u16); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueDescriptor<_0> { + pub first: _0, + pub last: _0, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Schedule<_0> { + pub assignments: ::subxt::ext::subxt_core::alloc::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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct WorkState < _0 > { pub assignments : :: subxt :: ext :: subxt_core :: alloc :: 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 { @@ -54756,13 +64921,43 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::place_order_allow_death`]."] + #[doc = "Create a single on demand core order."] + #[doc = "Will use the spot price for the current block and will reap the account if needed."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] place_order_allow_death { max_amount: ::core::primitive::u128, para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, }, #[codec(index = 1)] - #[doc = "See [`Pallet::place_order_keep_alive`]."] + #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"] + #[doc = "check that placing the order will not reap the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `InvalidParaId`"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `SpotOrderPlaced`"] place_order_keep_alive { max_amount: ::core::primitive::u128, para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -54785,20 +64980,12 @@ pub mod api { #[doc = "The `Error` enum of this pallet."] pub enum Error { #[codec(index = 0)] - #[doc = "The `ParaId` supplied to the `place_order` call is not a valid `ParaThread`, making the"] - #[doc = "call is invalid."] - InvalidParaId, - #[codec(index = 1)] #[doc = "The order queue is full, `place_order` will not continue."] QueueFull, - #[codec(index = 2)] + #[codec(index = 1)] #[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 :: subxt_core :: ext :: codec :: Decode, @@ -54844,9 +65031,75 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct CoreAffinityCount { - pub core_idx: runtime_types::polkadot_primitives::v6::CoreIndex, + pub core_index: runtime_types::polkadot_primitives::v7::CoreIndex, pub count: ::core::primitive::u32, } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct EnqueuedOrder { + pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + pub idx: + runtime_types::polkadot_runtime_parachains::assigner_on_demand::QueueIndex, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueIndex(pub ::core::primitive::u32); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueStatusType { pub traffic : runtime_types :: sp_arithmetic :: fixed_point :: FixedU128 , pub next_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueIndex , pub smallest_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueIndex , pub freed_indices : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: ReverseQueueIndex > , } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ReverseQueueIndex(pub ::core::primitive::u32); } pub mod configuration { use super::runtime_types; @@ -54868,7 +65121,7 @@ pub mod api { )] #[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 = "Set the validation upgrade cooldown."] set_validation_upgrade_cooldown { new : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Set the validation upgrade delay."] set_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Set the acceptance period for an included candidate."] set_code_retention_period { new : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Set the max validation code size for incoming upgrades."] set_max_code_size { new : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Set the max POV block size for incoming upgrades."] set_max_pov_size { new : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set the max head data size for paras."] set_max_head_data_size { new : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "Set the number of coretime execution cores."] # [doc = ""] # [doc = "NOTE: that this configuration is managed by the coretime chain. Only manually change"] # [doc = "this, if you really know what you are doing!"] set_coretime_cores { new : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "Set the max number of times a claim may timeout on a core before it is abandoned"] set_max_availability_timeouts { new : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "Set the parachain validator-group rotation frequency"] set_group_rotation_frequency { new : :: core :: primitive :: u32 , } , # [codec (index = 9)] # [doc = "Set the availability period for paras."] set_paras_availability_period { new : :: core :: primitive :: u32 , } , # [codec (index = 11)] # [doc = "Set the scheduling lookahead, in expected number of blocks at peak throughput."] set_scheduling_lookahead { new : :: core :: primitive :: u32 , } , # [codec (index = 12)] # [doc = "Set the maximum number of validators to assign to any core."] set_max_validators_per_core { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 13)] # [doc = "Set the maximum number of validators to use in parachain consensus."] set_max_validators { new : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 14)] # [doc = "Set the dispute period, in number of sessions to keep for disputes."] set_dispute_period { new : :: core :: primitive :: u32 , } , # [codec (index = 15)] # [doc = "Set the dispute post conclusion acceptance period."] set_dispute_post_conclusion_acceptance_period { new : :: core :: primitive :: u32 , } , # [codec (index = 18)] # [doc = "Set the no show slots, in number of number of consensus slots."] # [doc = "Must be at least 1."] set_no_show_slots { new : :: core :: primitive :: u32 , } , # [codec (index = 19)] # [doc = "Set the total number of delay tranches."] set_n_delay_tranches { new : :: core :: primitive :: u32 , } , # [codec (index = 20)] # [doc = "Set the zeroth delay tranche width."] set_zeroth_delay_tranche_width { new : :: core :: primitive :: u32 , } , # [codec (index = 21)] # [doc = "Set the number of validators needed to approve a block."] set_needed_approvals { new : :: core :: primitive :: u32 , } , # [codec (index = 22)] # [doc = "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion."] set_relay_vrf_modulo_samples { new : :: core :: primitive :: u32 , } , # [codec (index = 23)] # [doc = "Sets the maximum items that can present in a upward dispatch queue at once."] set_max_upward_queue_count { new : :: core :: primitive :: u32 , } , # [codec (index = 24)] # [doc = "Sets the maximum total size of items that can present in a upward dispatch queue at"] # [doc = "once."] set_max_upward_queue_size { new : :: core :: primitive :: u32 , } , # [codec (index = 25)] # [doc = "Set the critical downward message size."] set_max_downward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 27)] # [doc = "Sets the maximum size of an upward message that can be sent by a candidate."] set_max_upward_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 28)] # [doc = "Sets the maximum number of messages that a candidate can contain."] set_max_upward_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 29)] # [doc = "Sets the number of sessions after which an HRMP open channel request expires."] set_hrmp_open_request_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 30)] # [doc = "Sets the amount of funds that the sender should provide for opening an HRMP channel."] set_hrmp_sender_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 31)] # [doc = "Sets the amount of funds that the recipient should provide for accepting opening an HRMP"] # [doc = "channel."] set_hrmp_recipient_deposit { new : :: core :: primitive :: u128 , } , # [codec (index = 32)] # [doc = "Sets the maximum number of messages allowed in an HRMP channel at once."] set_hrmp_channel_max_capacity { new : :: core :: primitive :: u32 , } , # [codec (index = 33)] # [doc = "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once."] set_hrmp_channel_max_total_size { new : :: core :: primitive :: u32 , } , # [codec (index = 34)] # [doc = "Sets the maximum number of inbound HRMP channels a parachain is allowed to accept."] set_hrmp_max_parachain_inbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 36)] # [doc = "Sets the maximum size of a message that could ever be put into an HRMP channel."] set_hrmp_channel_max_message_size { new : :: core :: primitive :: u32 , } , # [codec (index = 37)] # [doc = "Sets the maximum number of outbound HRMP channels a parachain is allowed to open."] set_hrmp_max_parachain_outbound_channels { new : :: core :: primitive :: u32 , } , # [codec (index = 39)] # [doc = "Sets the maximum number of outbound HRMP messages can be sent by a candidate."] set_hrmp_max_message_num_per_candidate { new : :: core :: primitive :: u32 , } , # [codec (index = 42)] # [doc = "Set the number of session changes after which a PVF pre-checking voting is rejected."] set_pvf_voting_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 43)] # [doc = "Sets the minimum delay between announcing the upgrade block for a parachain until the"] # [doc = "upgrade taking place."] # [doc = ""] # [doc = "See the field documentation for information and constraints for the new value."] set_minimum_validation_upgrade_delay { new : :: core :: primitive :: u32 , } , # [codec (index = 44)] # [doc = "Setting this to true will disable consistency checks for the configuration setters."] # [doc = "Use with caution."] set_bypass_consistency_check { new : :: core :: primitive :: bool , } , # [codec (index = 45)] # [doc = "Set the asynchronous backing parameters."] set_async_backing_params { new : runtime_types :: polkadot_primitives :: v7 :: async_backing :: AsyncBackingParams , } , # [codec (index = 46)] # [doc = "Set PVF executor parameters."] set_executor_params { new : runtime_types :: polkadot_primitives :: v7 :: executor_params :: ExecutorParams , } , # [codec (index = 47)] # [doc = "Set the on demand (parathreads) base fee."] set_on_demand_base_fee { new : :: core :: primitive :: u128 , } , # [codec (index = 48)] # [doc = "Set the on demand (parathreads) fee variability."] set_on_demand_fee_variability { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 49)] # [doc = "Set the on demand (parathreads) queue max size."] set_on_demand_queue_max_size { new : :: core :: primitive :: u32 , } , # [codec (index = 50)] # [doc = "Set the on demand (parathreads) fee variability."] set_on_demand_target_queue_utilization { new : runtime_types :: sp_arithmetic :: per_things :: Perbill , } , # [codec (index = 51)] # [doc = "Set the on demand (parathreads) ttl in the claimqueue."] set_on_demand_ttl { new : :: core :: primitive :: u32 , } , # [codec (index = 52)] # [doc = "Set the minimum backing votes threshold."] set_minimum_backing_votes { new : :: core :: primitive :: u32 , } , # [codec (index = 53)] # [doc = "Set/Unset a node feature."] set_node_feature { index : :: core :: primitive :: u8 , value : :: core :: primitive :: bool , } , # [codec (index = 54)] # [doc = "Set approval-voting-params."] set_approval_voting_params { new : runtime_types :: polkadot_primitives :: v7 :: ApprovalVotingParams , } , # [codec (index = 55)] # [doc = "Set scheduler-params."] set_scheduler_params { new : runtime_types :: polkadot_primitives :: vstaging :: SchedulerParams < :: core :: primitive :: u32 > , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -54915,7 +65168,7 @@ pub mod api { pub validation_upgrade_cooldown: _0, pub validation_upgrade_delay: _0, pub async_backing_params: - runtime_types::polkadot_primitives::v6::async_backing::AsyncBackingParams, + runtime_types::polkadot_primitives::v7::async_backing::AsyncBackingParams, pub max_pov_size: ::core::primitive::u32, pub max_downward_message_size: ::core::primitive::u32, pub hrmp_max_parachain_outbound_channels: ::core::primitive::u32, @@ -54926,21 +65179,8 @@ pub mod api { pub hrmp_max_parachain_inbound_channels: ::core::primitive::u32, pub hrmp_channel_max_message_size: ::core::primitive::u32, pub executor_params: - runtime_types::polkadot_primitives::v6::executor_params::ExecutorParams, + runtime_types::polkadot_primitives::v7::executor_params::ExecutorParams, pub code_retention_period: _0, - pub on_demand_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: - runtime_types::sp_arithmetic::per_things::Perbill, - pub on_demand_fee_variability: - runtime_types::sp_arithmetic::per_things::Perbill, - pub on_demand_base_fee: ::core::primitive::u128, - pub on_demand_ttl: _0, - pub group_rotation_frequency: _0, - pub paras_availability_period: _0, - pub scheduling_lookahead: ::core::primitive::u32, - pub max_validators_per_core: ::core::option::Option<_0>, pub max_validators: ::core::option::Option<_0>, pub dispute_period: ::core::primitive::u32, pub dispute_post_conclusion_acceptance_period: _0, @@ -54952,6 +65192,82 @@ 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::ext::subxt_core::utils::bits::DecodedBits< + ::core::primitive::u8, + ::subxt::ext::subxt_core::utils::bits::Lsb0, + >, + pub approval_voting_params: + runtime_types::polkadot_primitives::v7::ApprovalVotingParams, + pub scheduler_params: + runtime_types::polkadot_primitives::vstaging::SchedulerParams<_0>, + } + } + pub mod coretime { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + # [codec (index = 1)] # [doc = "Request the configuration to be updated with the specified number of cores. Warning:"] # [doc = "Since this only schedules a configuration update, it takes two sessions to come into"] # [doc = "effect."] # [doc = ""] # [doc = "- `origin`: Root or the Coretime Chain"] # [doc = "- `count`: total number of cores"] request_core_count { count : :: core :: primitive :: u16 , } , # [codec (index = 4)] # [doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] # [doc = "to be used."] # [doc = ""] # [doc = "Parameters:"] # [doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain."] # [doc = "-`core`: The core that should be scheduled."] # [doc = "-`begin`: The starting blockheight of the instruction."] # [doc = "-`assignment`: How the blockspace should be utilised."] # [doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] assign_core { core : :: core :: primitive :: u16 , begin : :: core :: primitive :: u32 , assignment : :: subxt :: ext :: subxt_core :: alloc :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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::v7::CoreIndex, + }, + } } } pub mod disputes { @@ -54975,7 +65291,6 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::force_unfreeze`]."] force_unfreeze, } #[derive( @@ -55080,10 +65395,9 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::report_dispute_lost_unsigned`]."] report_dispute_lost_unsigned { dispute_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::polkadot_primitives::v6::slashing::DisputeProof, + runtime_types::polkadot_primitives::v7::slashing::DisputeProof, >, key_owner_proof: runtime_types::sp_session::MembershipProof, }, @@ -55187,7 +65501,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::hrmp_init_open_channel`]."] hrmp_init_open_channel { recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "See [`Pallet::hrmp_accept_open_channel`]."] hrmp_accept_open_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 2)] # [doc = "See [`Pallet::hrmp_close_channel`]."] hrmp_close_channel { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 3)] # [doc = "See [`Pallet::force_clean_hrmp`]."] force_clean_hrmp { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , num_inbound : :: core :: primitive :: u32 , num_outbound : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "See [`Pallet::force_process_hrmp_open`]."] force_process_hrmp_open { channels : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "See [`Pallet::force_process_hrmp_close`]."] force_process_hrmp_close { channels : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "See [`Pallet::hrmp_cancel_open_request`]."] hrmp_cancel_open_request { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , open_requests : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "See [`Pallet::force_open_hrmp_channel`]."] force_open_hrmp_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , max_capacity : :: core :: primitive :: u32 , max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "See [`Pallet::establish_system_channel`]."] establish_system_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 9)] # [doc = "See [`Pallet::poke_channel_deposits`]."] poke_channel_deposits { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , } + # [codec (index = 0)] # [doc = "Initiate opening a channel from a parachain to a given recipient with given channel"] # [doc = "parameters."] # [doc = ""] # [doc = "- `proposed_max_capacity` - specifies how many messages can be in the channel at once."] # [doc = "- `proposed_max_message_size` - specifies the maximum size of the messages."] # [doc = ""] # [doc = "These numbers are a subject to the relay-chain configuration limits."] # [doc = ""] # [doc = "The channel can be opened only after the recipient confirms it and only on a session"] # [doc = "change."] hrmp_init_open_channel { recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "Accept a pending open channel request from the given sender."] # [doc = ""] # [doc = "The channel will be opened only on the next session boundary."] hrmp_accept_open_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 2)] # [doc = "Initiate unilateral closing of a channel. The origin must be either the sender or the"] # [doc = "recipient in the channel being closed."] # [doc = ""] # [doc = "The closure can only happen on a session change."] hrmp_close_channel { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 3)] # [doc = "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have."] # [doc = "Normally this happens once per session, but this allows you to trigger the cleanup"] # [doc = "immediately for a specific parachain."] # [doc = ""] # [doc = "Number of inbound and outbound channels for `para` must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_clean_hrmp { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , num_inbound : :: core :: primitive :: u32 , num_outbound : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Force process HRMP open channel requests."] # [doc = ""] # [doc = "If there are pending HRMP open channel requests, you can use this function to process"] # [doc = "all of those requests immediately."] # [doc = ""] # [doc = "Total number of opening channels must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_process_hrmp_open { channels : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Force process HRMP close channel requests."] # [doc = ""] # [doc = "If there are pending HRMP close channel requests, you can use this function to process"] # [doc = "all of those requests immediately."] # [doc = ""] # [doc = "Total number of closing channels must be provided as witness data."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_process_hrmp_close { channels : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "This cancels a pending open channel request. It can be canceled by either of the sender"] # [doc = "or the recipient for that request. The origin must be either of those."] # [doc = ""] # [doc = "The cancellation happens immediately. It is not possible to cancel the request if it is"] # [doc = "already accepted."] # [doc = ""] # [doc = "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as"] # [doc = "witness data."] hrmp_cancel_open_request { channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , open_requests : :: core :: primitive :: u32 , } , # [codec (index = 7)] # [doc = "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,"] # [doc = "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's"] # [doc = "configured limits."] # [doc = ""] # [doc = "Expected use is when one (and only one) of the `ParaId`s involved in the channel is"] # [doc = "governed by the system, e.g. a system parachain."] # [doc = ""] # [doc = "Origin must be the `ChannelManager`."] force_open_hrmp_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , max_capacity : :: core :: primitive :: u32 , max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 8)] # [doc = "Establish an HRMP channel between two system chains. If the channel does not already"] # [doc = "exist, the transaction fees will be refunded to the caller. The system does not take"] # [doc = "deposits for channels between system chains, and automatically sets the message number"] # [doc = "and size limits to the maximum allowed by the network's configuration."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `sender`: A system chain, `ParaId`."] # [doc = "- `recipient`: A system chain, `ParaId`."] # [doc = ""] # [doc = "Any signed origin can call this function, but _both_ inputs MUST be system chains. If"] # [doc = "the channel does not exist yet, there is no fee."] establish_system_channel { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 9)] # [doc = "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels"] # [doc = "with system chains do not require a deposit."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `sender`: A chain, `ParaId`."] # [doc = "- `recipient`: A chain, `ParaId`."] # [doc = ""] # [doc = "Any signed origin can call this function."] poke_channel_deposits { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 10)] # [doc = "Establish a bidirectional HRMP channel between a parachain and a system chain."] # [doc = ""] # [doc = "Arguments:"] # [doc = ""] # [doc = "- `target_system_chain`: A system chain, `ParaId`."] # [doc = ""] # [doc = "The origin needs to be the parachain origin."] establish_channel_with_system { target_system_chain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -55281,7 +65595,7 @@ pub mod api { )] #[doc = "The `Event` enum of this pallet"] pub enum Event { - # [codec (index = 0)] # [doc = "Open HRMP channel requested."] OpenChannelRequested { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "An HRMP channel request sent by the receiver was canceled by either party."] OpenChannelCanceled { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 2)] # [doc = "Open HRMP channel accepted."] OpenChannelAccepted { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "HRMP channel closed."] ChannelClosed { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 4)] # [doc = "An HRMP channel was opened via Root origin."] HrmpChannelForceOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "An HRMP channel was opened between two system chains."] HrmpSystemChannelOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "An HRMP channel's deposits were updated."] OpenChannelDepositsUpdated { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , } + # [codec (index = 0)] # [doc = "Open HRMP channel requested."] OpenChannelRequested { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 1)] # [doc = "An HRMP channel request sent by the receiver was canceled by either party."] OpenChannelCanceled { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 2)] # [doc = "Open HRMP channel accepted."] OpenChannelAccepted { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 3)] # [doc = "HRMP channel closed."] ChannelClosed { by_parachain : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , channel_id : runtime_types :: polkadot_parachain_primitives :: primitives :: HrmpChannelId , } , # [codec (index = 4)] # [doc = "An HRMP channel was opened via Root origin."] HrmpChannelForceOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "An HRMP channel was opened with a system chain."] HrmpSystemChannelOpened { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , proposed_max_capacity : :: core :: primitive :: u32 , proposed_max_message_size : :: core :: primitive :: u32 , } , # [codec (index = 6)] # [doc = "An HRMP channel's deposits were updated."] OpenChannelDepositsUpdated { sender : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , recipient : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , } } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55367,97 +65681,62 @@ pub mod api { #[doc = "The `Error` enum of this pallet."] pub enum Error { #[codec(index = 0)] - #[doc = "Validator indices are out of order or contains duplicates."] - UnsortedOrDuplicateValidatorIndices, - #[codec(index = 1)] - #[doc = "Dispute statement sets are out of order or contain duplicates."] - UnsortedOrDuplicateDisputeStatementSet, - #[codec(index = 2)] - #[doc = "Backed candidates are out of order (core index) or contain duplicates."] - UnsortedOrDuplicateBackedCandidates, - #[codec(index = 3)] - #[doc = "A different relay parent was provided compared to the on-chain stored one."] - UnexpectedRelayParent, - #[codec(index = 4)] - #[doc = "Availability bitfield has unexpected size."] - WrongBitfieldSize, - #[codec(index = 5)] - #[doc = "Bitfield consists of zeros only."] - BitfieldAllZeros, - #[codec(index = 6)] - #[doc = "Multiple bitfields submitted by same validator or validators out of order by index."] - BitfieldDuplicateOrUnordered, - #[codec(index = 7)] #[doc = "Validator index out of bounds."] ValidatorIndexOutOfBounds, - #[codec(index = 8)] - #[doc = "Invalid signature"] - InvalidBitfieldSignature, - #[codec(index = 9)] + #[codec(index = 1)] #[doc = "Candidate submitted but para not scheduled."] UnscheduledCandidate, - #[codec(index = 10)] - #[doc = "Candidate scheduled despite pending candidate already existing for the para."] - CandidateScheduledBeforeParaFree, - #[codec(index = 11)] - #[doc = "Scheduled cores out of order."] - ScheduledOutOfOrder, - #[codec(index = 12)] + #[codec(index = 2)] #[doc = "Head data exceeds the configured maximum."] HeadDataTooLarge, - #[codec(index = 13)] + #[codec(index = 3)] #[doc = "Code upgrade prematurely."] PrematureCodeUpgrade, - #[codec(index = 14)] + #[codec(index = 4)] #[doc = "Output code is too large"] NewCodeTooLarge, - #[codec(index = 15)] + #[codec(index = 5)] #[doc = "The candidate's relay-parent was not allowed. Either it was"] #[doc = "not recent enough or it didn't advance based on the last parachain block."] DisallowedRelayParent, - #[codec(index = 16)] + #[codec(index = 6)] #[doc = "Failed to compute group index for the core: either it's out of bounds"] #[doc = "or the relay parent doesn't belong to the current session."] InvalidAssignment, - #[codec(index = 17)] + #[codec(index = 7)] #[doc = "Invalid group index in core assignment."] InvalidGroupIndex, - #[codec(index = 18)] + #[codec(index = 8)] #[doc = "Insufficient (non-majority) backing."] InsufficientBacking, - #[codec(index = 19)] + #[codec(index = 9)] #[doc = "Invalid (bad signature, unknown validator, etc.) backing."] InvalidBacking, - #[codec(index = 20)] + #[codec(index = 10)] #[doc = "Collator did not sign PoV."] NotCollatorSigned, - #[codec(index = 21)] + #[codec(index = 11)] #[doc = "The validation data hash does not match expected."] ValidationDataHashMismatch, - #[codec(index = 22)] + #[codec(index = 12)] #[doc = "The downward message queue is not processed correctly."] IncorrectDownwardMessageHandling, - #[codec(index = 23)] + #[codec(index = 13)] #[doc = "At least one upward message sent does not pass the acceptance criteria."] InvalidUpwardMessages, - #[codec(index = 24)] + #[codec(index = 14)] #[doc = "The candidate didn't follow the rules of HRMP watermark advancement."] HrmpWatermarkMishandling, - #[codec(index = 25)] + #[codec(index = 15)] #[doc = "The HRMP messages sent by the candidate is not valid."] InvalidOutboundHrmp, - #[codec(index = 26)] + #[codec(index = 16)] #[doc = "The validation code hash of the candidate is not valid."] InvalidValidationCodeHash, - #[codec(index = 27)] + #[codec(index = 17)] #[doc = "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual"] #[doc = "para head in the commitments."] ParaHeadMismatch, - #[codec(index = 28)] - #[doc = "A bitfield that references a freed core,"] - #[doc = "either intentionally or as part of a concluded"] - #[doc = "invalid dispute."] - BitfieldReferencesFreedCore, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55478,31 +65757,31 @@ pub mod api { #[codec(index = 0)] #[doc = "A candidate was backed. `[candidate, head_data]`"] CandidateBacked( - runtime_types::polkadot_primitives::v6::CandidateReceipt< + runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, - runtime_types::polkadot_primitives::v6::GroupIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, + runtime_types::polkadot_primitives::v7::GroupIndex, ), #[codec(index = 1)] #[doc = "A candidate was included. `[candidate, head_data]`"] CandidateIncluded( - runtime_types::polkadot_primitives::v6::CandidateReceipt< + runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, - runtime_types::polkadot_primitives::v6::GroupIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, + runtime_types::polkadot_primitives::v7::GroupIndex, ), #[codec(index = 2)] #[doc = "A candidate timed out. `[candidate, head_data]`"] CandidateTimedOut( - runtime_types::polkadot_primitives::v6::CandidateReceipt< + runtime_types::polkadot_primitives::v7::CandidateReceipt< ::subxt::ext::subxt_core::utils::H256, >, runtime_types::polkadot_parachain_primitives::primitives::HeadData, - runtime_types::polkadot_primitives::v6::CoreIndex, + runtime_types::polkadot_primitives::v7::CoreIndex, ), #[codec(index = 3)] #[doc = "Some upward messages have been received and will be processed."] @@ -55544,28 +65823,12 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct AvailabilityBitfieldRecord<_0> { - pub bitfield: runtime_types::polkadot_primitives::v6::AvailabilityBitfield, - pub submitted_at: _0, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] pub struct CandidatePendingAvailability<_0, _1> { - pub core: runtime_types::polkadot_primitives::v6::CoreIndex, + pub core: runtime_types::polkadot_primitives::v7::CoreIndex, pub hash: runtime_types::polkadot_core_primitives::CandidateHash, - pub descriptor: runtime_types::polkadot_primitives::v6::CandidateDescriptor<_0>, + pub descriptor: runtime_types::polkadot_primitives::v7::CandidateDescriptor<_0>, + pub commitments: + runtime_types::polkadot_primitives::v7::CandidateCommitments<_1>, pub availability_votes: ::subxt::ext::subxt_core::utils::bits::DecodedBits< ::core::primitive::u8, ::subxt::ext::subxt_core::utils::bits::Lsb0, @@ -55576,7 +65839,7 @@ pub mod api { >, pub relay_parent_number: _1, pub backed_in_number: _1, - pub backing_group: runtime_types::polkadot_primitives::v6::GroupIndex, + pub backing_group: runtime_types::polkadot_primitives::v7::GroupIndex, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55618,7 +65881,9 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::force_approve`]."] + #[doc = "Issue a signal to the consensus engine to forcibly act as though all parachain"] + #[doc = "blocks in all relay chain blocks up to and including the given number in the current"] + #[doc = "chain are valid and should be finalized."] force_approve { up_to: ::core::primitive::u32 }, } } @@ -55638,10 +65903,10 @@ pub mod api { )] pub struct BufferedSessionChange { pub validators: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, >, pub queued: ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::polkadot_primitives::v6::validator_app::Public, + runtime_types::polkadot_primitives::v7::validator_app::Public, >, pub session_index: ::core::primitive::u32, } @@ -55690,7 +65955,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] # [doc = "See [`Pallet::force_set_current_code`]."] force_set_current_code { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "See [`Pallet::force_set_current_head`]."] force_set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 2)] # [doc = "See [`Pallet::force_schedule_code_upgrade`]."] force_schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , relay_parent_number : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "See [`Pallet::force_note_new_head`]."] force_note_new_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 4)] # [doc = "See [`Pallet::force_queue_action`]."] force_queue_action { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "See [`Pallet::add_trusted_validation_code`]."] add_trusted_validation_code { validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 6)] # [doc = "See [`Pallet::poke_unused_validation_code`]."] poke_unused_validation_code { validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } , # [codec (index = 7)] # [doc = "See [`Pallet::include_pvf_check_statement`]."] include_pvf_check_statement { stmt : runtime_types :: polkadot_primitives :: v6 :: PvfCheckStatement , signature : runtime_types :: polkadot_primitives :: v6 :: validator_app :: Signature , } , # [codec (index = 8)] # [doc = "See [`Pallet::force_set_most_recent_context`]."] force_set_most_recent_context { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , context : :: core :: primitive :: u32 , } , } + # [codec (index = 0)] # [doc = "Set the storage for the parachain validation code immediately."] force_set_current_code { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 1)] # [doc = "Set the storage for the current parachain head data immediately."] force_set_current_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 2)] # [doc = "Schedule an upgrade as if it was scheduled in the given relay parent block."] force_schedule_code_upgrade { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , relay_parent_number : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Note a new block head for para within the context of the current block."] force_note_new_head { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , new_head : runtime_types :: polkadot_parachain_primitives :: primitives :: HeadData , } , # [codec (index = 4)] # [doc = "Put a parachain directly into the next session's action queue."] # [doc = "We can't queue it any sooner than this without going into the"] # [doc = "initializer..."] force_queue_action { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , } , # [codec (index = 5)] # [doc = "Adds the validation code to the storage."] # [doc = ""] # [doc = "The code will not be added if it is already present. Additionally, if PVF pre-checking"] # [doc = "is running for that code, it will be instantly accepted."] # [doc = ""] # [doc = "Otherwise, the code will be added into the storage. Note that the code will be added"] # [doc = "into storage with reference count 0. This is to account the fact that there are no users"] # [doc = "for this code yet. The caller will have to make sure that this code eventually gets"] # [doc = "used by some parachain or removed from the storage to avoid storage leaks. For the"] # [doc = "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage"] # [doc = "manipulation."] # [doc = ""] # [doc = "This function is mainly meant to be used for upgrading parachains that do not follow"] # [doc = "the go-ahead signal while the PVF pre-checking feature is enabled."] add_trusted_validation_code { validation_code : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCode , } , # [codec (index = 6)] # [doc = "Remove the validation code from the storage iff the reference count is 0."] # [doc = ""] # [doc = "This is better than removing the storage directly, because it will not remove the code"] # [doc = "that was suddenly got used by some parachain while this dispatchable was pending"] # [doc = "dispatching."] poke_unused_validation_code { validation_code_hash : runtime_types :: polkadot_parachain_primitives :: primitives :: ValidationCodeHash , } , # [codec (index = 7)] # [doc = "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and"] # [doc = "enacts the results if that was the last vote before achieving the supermajority."] include_pvf_check_statement { stmt : runtime_types :: polkadot_primitives :: v7 :: PvfCheckStatement , signature : runtime_types :: polkadot_primitives :: v7 :: validator_app :: Signature , } , # [codec (index = 8)] # [doc = "Set the storage for the current parachain head data immediately."] force_set_most_recent_context { para : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , context : :: core :: primitive :: u32 , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -55743,6 +66008,9 @@ pub mod api { #[codec(index = 11)] #[doc = "Parachain cannot currently schedule a code upgrade."] CannotUpgradeCode, + #[codec(index = 12)] + #[doc = "Invalid validation code size."] + InvalidCode, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -55883,7 +66151,8 @@ pub mod api { Upgrade { id: runtime_types::polkadot_parachain_primitives::primitives::Id, included_at: _0, - set_go_ahead: runtime_types::polkadot_runtime_parachains::paras::SetGoAhead, + upgrade_strategy: + runtime_types::polkadot_runtime_parachains::paras::UpgradeStrategy, }, } #[derive( @@ -55918,11 +66187,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum SetGoAhead { + pub enum UpgradeStrategy { #[codec(index = 0)] - Yes, + SetGoAheadSignal, #[codec(index = 1)] - No, + ApplyAtExpectedBlock, } } pub mod paras_inherent { @@ -55946,9 +66215,9 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::enter`]."] + #[doc = "Enter the paras inherent. This will process bitfields and backed candidates."] enter { - data: runtime_types::polkadot_primitives::v6::InherentData< + data: runtime_types::polkadot_primitives::v7::InherentData< runtime_types::sp_runtime::generic::header::Header< ::core::primitive::u32, >, @@ -55979,17 +66248,15 @@ pub mod api { #[doc = "the parent."] InvalidParentHeader, #[codec(index = 2)] - #[doc = "Disputed candidate that was concluded invalid."] - CandidateConcludedInvalid, - #[codec(index = 3)] #[doc = "The data given to the inherent will result in an overweight block."] InherentOverweight, + #[codec(index = 3)] + #[doc = "A candidate was filtered during inherent execution. This should have only been done"] + #[doc = "during creation."] + CandidatesFilteredDuringExecution, #[codec(index = 4)] - #[doc = "The ordering of dispute statements was invalid."] - DisputeStatementsUnsortedOrDuplicates, - #[codec(index = 5)] - #[doc = "A dispute statement was invalid."] - DisputeInvalid, + #[doc = "Too many candidates supplied."] + UnscheduledCandidate, } } } @@ -56011,8 +66278,14 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: 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::v7::CoreIndex, + }, + #[codec(index = 1)] + Bulk(runtime_types::polkadot_parachain_primitives::primitives::Id), } } pub mod pallet { @@ -56093,6 +66366,213 @@ pub mod api { } pub mod rococo_runtime { use super::runtime_types; + pub mod dynamic_params { + use super::runtime_types; + pub mod nis { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct MinBid; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Parameters { + #[codec(index = 0)] + Target( + runtime_types::rococo_runtime::dynamic_params::nis::Target, + ::core::option::Option< + runtime_types::sp_arithmetic::per_things::Perquintill, + >, + ), + #[codec(index = 1)] + MinBid( + runtime_types::rococo_runtime::dynamic_params::nis::MinBid, + ::core::option::Option<::core::primitive::u128>, + ), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum ParametersKey { + #[codec(index = 0)] + Target(runtime_types::rococo_runtime::dynamic_params::nis::Target), + #[codec(index = 1)] + MinBid(runtime_types::rococo_runtime::dynamic_params::nis::MinBid), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum ParametersValue { + #[codec(index = 0)] + Target(runtime_types::sp_arithmetic::per_things::Perquintill), + #[codec(index = 1)] + MinBid(::core::primitive::u128), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Target; + } + pub mod preimage { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct BaseDeposit; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ByteDeposit; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Parameters { + #[codec(index = 0)] + BaseDeposit( + runtime_types::rococo_runtime::dynamic_params::preimage::BaseDeposit, + ::core::option::Option<::core::primitive::u128>, + ), + #[codec(index = 1)] + ByteDeposit( + runtime_types::rococo_runtime::dynamic_params::preimage::ByteDeposit, + ::core::option::Option<::core::primitive::u128>, + ), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum ParametersKey { + #[codec(index = 0)] + BaseDeposit( + runtime_types::rococo_runtime::dynamic_params::preimage::BaseDeposit, + ), + #[codec(index = 1)] + ByteDeposit( + runtime_types::rococo_runtime::dynamic_params::preimage::ByteDeposit, + ), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum ParametersValue { + #[codec(index = 0)] + BaseDeposit(::core::primitive::u128), + #[codec(index = 1)] + ByteDeposit(::core::primitive::u128), + } + } + } pub mod governance { use super::runtime_types; pub mod origins { @@ -56193,14 +66673,18 @@ pub mod api { #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { #[codec(index = 0)] - #[doc = "See [`Pallet::register_validators`]."] + #[doc = "Add new validators to the set."] + #[doc = ""] + #[doc = "The new validators will be active from current session + 2."] register_validators { validators: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, >, }, #[codec(index = 1)] - #[doc = "See [`Pallet::deregister_validators`]."] + #[doc = "Remove validators from the set."] + #[doc = ""] + #[doc = "The removed validators will be deactivated from current session + 2."] deregister_validators { validators: ::subxt::ext::subxt_core::alloc::vec::Vec< ::subxt::ext::subxt_core::utils::AccountId32, @@ -56312,14 +66796,12 @@ pub mod api { Indices(runtime_types::pallet_indices::pallet::Call), #[codec(index = 4)] Balances(runtime_types::pallet_balances::pallet::Call), - #[codec(index = 240)] - Beefy(runtime_types::pallet_beefy::pallet::Call), + #[codec(index = 6)] + Parameters(runtime_types::pallet_parameters::pallet::Call), #[codec(index = 8)] 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)] @@ -56400,8 +66882,16 @@ 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 = 240)] + Beefy(runtime_types::pallet_beefy::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, @@ -56412,6 +66902,8 @@ pub mod api { ValidatorManager(runtime_types::rococo_runtime::validator_manager::pallet::Call), #[codec(index = 254)] StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::Call), + #[codec(index = 249)] + RootTesting(runtime_types::pallet_root_testing::pallet::Call), #[codec(index = 255)] Sudo(runtime_types::pallet_sudo::pallet::Call), } @@ -56434,14 +66926,10 @@ pub mod api { Indices(runtime_types::pallet_indices::pallet::Error), #[codec(index = 4)] Balances(runtime_types::pallet_balances::pallet::Error), - #[codec(index = 240)] - Beefy(runtime_types::pallet_beefy::pallet::Error), #[codec(index = 8)] 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)] @@ -56510,6 +66998,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)] @@ -56518,8 +67010,12 @@ 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 = 240)] + Beefy(runtime_types::pallet_beefy::pallet::Error), #[codec(index = 250)] ParasSudoWrapper( runtime_types::polkadot_runtime_common::paras_sudo_wrapper::pallet::Error, @@ -56550,6 +67046,8 @@ pub mod api { Indices(runtime_types::pallet_indices::pallet::Event), #[codec(index = 4)] Balances(runtime_types::pallet_balances::pallet::Event), + #[codec(index = 6)] + Parameters(runtime_types::pallet_parameters::pallet::Event), #[codec(index = 33)] TransactionPayment(runtime_types::pallet_transaction_payment::pallet::Event), #[codec(index = 7)] @@ -56558,8 +67056,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)] @@ -56624,8 +67120,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, @@ -56634,6 +67136,8 @@ pub mod api { ValidatorManager(runtime_types::rococo_runtime::validator_manager::pallet::Event), #[codec(index = 254)] StateTrieMigration(runtime_types::pallet_state_trie_migration::pallet::Event), + #[codec(index = 249)] + RootTesting(runtime_types::pallet_root_testing::pallet::Event), #[codec(index = 255)] Sudo(runtime_types::pallet_sudo::pallet::Event), } @@ -56652,6 +67156,56 @@ 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum RuntimeParameters { + #[codec(index = 0)] + Nis(runtime_types::rococo_runtime::dynamic_params::nis::Parameters), + #[codec(index = 1)] + Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::Parameters), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum RuntimeParametersKey { + #[codec(index = 0)] + Nis(runtime_types::rococo_runtime::dynamic_params::nis::ParametersKey), + #[codec(index = 1)] + Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::ParametersKey), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum RuntimeParametersValue { + #[codec(index = 0)] + Nis(runtime_types::rococo_runtime::dynamic_params::nis::ParametersValue), + #[codec(index = 1)] + Preimage(runtime_types::rococo_runtime::dynamic_params::preimage::ParametersValue), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -56666,9 +67220,8 @@ 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 para_validator: runtime_types::polkadot_primitives::v7::validator_app::Public, + pub para_assignment: runtime_types::polkadot_primitives::v7::assignment_app::Public, pub authority_discovery: runtime_types::sp_authority_discovery::app::Public, pub beefy: runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, } @@ -56797,7 +67350,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); } } pub mod sp_consensus_babe { @@ -56818,7 +67371,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::sr25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); } pub mod digests { use super::runtime_types; @@ -57052,7 +67605,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::ecdsa::Public); + pub struct Public(pub [::core::primitive::u8; 33usize]); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -57067,7 +67620,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Signature(pub runtime_types::sp_core::ecdsa::Signature); + pub struct Signature(pub [::core::primitive::u8; 65usize]); } pub mod mmr { use super::runtime_types; @@ -57124,7 +67677,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub struct EquivocationProof<_0, _1, _2> { + pub struct DoubleVotingProof<_0, _1, _2> { pub first: runtime_types::sp_consensus_beefy::VoteMessage<_0, _1, _2>, pub second: runtime_types::sp_consensus_beefy::VoteMessage<_0, _1, _2>, } @@ -57189,7 +67742,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Public(pub runtime_types::sp_core::ed25519::Public); + pub struct Public(pub [::core::primitive::u8; 32usize]); #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -57204,7 +67757,7 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Signature(pub runtime_types::sp_core::ed25519::Signature); + pub struct Signature(pub [::core::primitive::u8; 64usize]); } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -57313,72 +67866,6 @@ pub mod api { )] pub struct KeyTypeId(pub [::core::primitive::u8; 4usize]); } - pub mod ecdsa { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Public(pub [::core::primitive::u8; 33usize]); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Signature(pub [::core::primitive::u8; 65usize]); - } - pub mod ed25519 { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Public(pub [::core::primitive::u8; 32usize]); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Signature(pub [::core::primitive::u8; 64usize]); - } pub mod sr25519 { use super::runtime_types; pub mod vrf { @@ -57398,40 +67885,10 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: 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], } } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Public(pub [::core::primitive::u8; 32usize]); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Signature(pub [::core::primitive::u8; 64usize]); } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -58406,6 +68863,22 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum ExtrinsicInclusionMode { + #[codec(index = 0)] + AllExtrinsics, + #[codec(index = 1)] + OnlyInherents, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ModuleError { pub index: ::core::primitive::u8, pub error: [::core::primitive::u8; 4usize], @@ -58422,11 +68895,11 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum MultiSignature { #[codec(index = 0)] - Ed25519(runtime_types::sp_core::ed25519::Signature), + Ed25519([::core::primitive::u8; 64usize]), #[codec(index = 1)] - Sr25519(runtime_types::sp_core::sr25519::Signature), + Sr25519([::core::primitive::u8; 64usize]), #[codec(index = 2)] - Ecdsa(runtime_types::sp_core::ecdsa::Signature), + Ecdsa([::core::primitive::u8; 65usize]), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -58440,11 +68913,11 @@ pub mod api { #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum MultiSigner { #[codec(index = 0)] - Ed25519(runtime_types::sp_core::ed25519::Public), + Ed25519([::core::primitive::u8; 32usize]), #[codec(index = 1)] - Sr25519(runtime_types::sp_core::sr25519::Public), + Sr25519([::core::primitive::u8; 32usize]), #[codec(index = 2)] - Ecdsa(runtime_types::sp_core::ecdsa::Public), + Ecdsa([::core::primitive::u8; 33usize]), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -58631,6 +69104,985 @@ pub mod api { } } } + pub mod v4 { + use super::runtime_types; + pub mod asset { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct AssetId(pub runtime_types::staging_xcm::v4::location::Location); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Assets( + pub ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v4::asset::Asset, + >, + ); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum WildFungibility { + #[codec(index = 0)] + Fungible, + #[codec(index = 1)] + NonFungible, + } + } + pub mod junction { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Instruction1 { + #[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::Xcm1, + }, + #[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::Xcm1, + }, + #[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::Xcm1, + }, + #[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::Xcm1, + }, + #[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::Xcm1), + #[codec(index = 22)] + SetAppendix(runtime_types::staging_xcm::v4::Xcm1), + #[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: + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + }, + #[codec(index = 34)] + ExpectPallet { + #[codec(compact)] + index: ::core::primitive::u32, + name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + module_name: + ::subxt::ext::subxt_core::alloc::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::Xcm1, + }, + #[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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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::Xcm1, + }, + #[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::Xcm1, + }, + #[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::Xcm1, + }, + #[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::Xcm1, + }, + #[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: + ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, + }, + #[codec(index = 34)] + ExpectPallet { + #[codec(compact)] + index: ::core::primitive::u32, + name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + module_name: + ::subxt::ext::subxt_core::alloc::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::Xcm1, + }, + #[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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct PalletInfo { + #[codec(compact)] + pub index: ::core::primitive::u32, + pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::core::primitive::u8, + >, + pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + ::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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: 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::BoundedVec6< + runtime_types::staging_xcm::v4::PalletInfo, + >, + ), + #[codec(index = 5)] + DispatchResult(runtime_types::xcm::v3::MaybeErrorCode), + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Xcm1( + pub ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v4::Instruction1, + >, + ); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct Xcm2( + pub ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::staging_xcm::v4::Instruction2, + >, + ); + } + } + pub mod staging_xcm_executor { + use super::runtime_types; + pub mod traits { + use super::runtime_types; + pub mod asset_transfer { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum TransferType { + #[codec(index = 0)] + Teleport, + #[codec(index = 1)] + LocalReserve, + #[codec(index = 2)] + DestinationReserve, + #[codec(index = 3)] + RemoteReserve(runtime_types::xcm::VersionedLocation), + } + } + } } pub mod xcm { use super::runtime_types; @@ -59761,6 +71213,8 @@ pub mod api { BitcoinCore, #[codec(index = 9)] BitcoinCash, + #[codec(index = 10)] + PolkadotBulletin, } } pub mod junctions { @@ -60120,31 +71574,6 @@ pub mod api { #[codec(index = 39)] ExceedsStackLimit, } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, @@ -60617,13 +72046,13 @@ pub mod api { Success, #[codec(index = 1)] Error( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, ), #[codec(index = 2)] TruncatedError( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, ), @@ -60645,10 +72074,10 @@ pub mod api { pub struct PalletInfo { #[codec(compact)] pub index: ::core::primitive::u32, - pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec5< + pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, - pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec5< + pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< ::core::primitive::u8, >, #[codec(compact)] @@ -60708,7 +72137,7 @@ pub mod api { Version(::core::primitive::u32), #[codec(index = 4)] PalletsInfo( - runtime_types::bounded_collections::bounded_vec::BoundedVec4< + runtime_types::bounded_collections::bounded_vec::BoundedVec5< runtime_types::xcm::v3::PalletInfo, >, ), @@ -60787,6 +72216,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 :: subxt_core :: ext :: codec :: Decode, @@ -60798,11 +72229,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, @@ -60814,11 +72247,13 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: 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 :: subxt_core :: ext :: codec :: Decode, @@ -60835,6 +72270,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 :: subxt_core :: ext :: codec :: Decode, @@ -60851,6 +72288,8 @@ pub mod api { V2(runtime_types::xcm::v2::Xcm1), #[codec(index = 3)] V3(runtime_types::xcm::v3::Xcm1), + #[codec(index = 4)] + V4(runtime_types::staging_xcm::v4::Xcm1), } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -60867,6 +72306,117 @@ 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), + } + } + pub mod xcm_fee_payment_runtime_api { + use super::runtime_types; + pub mod dry_run { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Error { + #[codec(index = 0)] + Unimplemented, + #[codec(index = 1)] + VersionedConversionFailed, + #[codec(index = 2)] + InvalidExtrinsic, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ExtrinsicDryRunEffects<_0> { + pub execution_result: + ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>, + pub emitted_events: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, + pub local_xcm: ::core::option::Option, + pub forwarded_xcms: ::subxt::ext::subxt_core::alloc::vec::Vec<( + runtime_types::xcm::VersionedLocation, + ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::xcm::VersionedXcm1, + >, + )>, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct XcmDryRunEffects<_0> { + pub execution_result: runtime_types::staging_xcm::v4::traits::Outcome, + pub emitted_events: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, + pub forwarded_xcms: ::subxt::ext::subxt_core::alloc::vec::Vec<( + runtime_types::xcm::VersionedLocation, + ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::xcm::VersionedXcm1, + >, + )>, + } + } + pub mod fees { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Error { + #[codec(index = 0)] + Unimplemented, + #[codec(index = 1)] + VersionedConversionFailed, + #[codec(index = 2)] + WeightNotComputable, + #[codec(index = 3)] + UnhandledXcmVersion, + #[codec(index = 4)] + AssetNotFound, + #[codec(index = 5)] + Unroutable, + } } } } From 31b2b82eb996ec3f256a6e02396628dc47bc9b52 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Wed, 15 May 2024 17:41:04 +0100 Subject: [PATCH 013/137] Bump scale-decode and related deps to latest (#1583) --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 8 ++++---- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 79f775c03c..9de7e57adc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3728,9 +3728,9 @@ dependencies = [ [[package]] name = "scale-decode" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e10e0d345101a013ca3af62c2d44d20213d543cc64d96080c68d931e54360c5" +checksum = "b12ebca36cec2a3f983c46295b282b35e5f8496346fb859a8776dad5389e5389" dependencies = [ "derive_more", "parity-scale-codec", @@ -3743,9 +3743,9 @@ dependencies = [ [[package]] name = "scale-decode-derive" -version = "0.12.0" +version = "0.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ab7c6965f4559944d8b957e3a7bedd9f2ff10ac7f55f7bda9dc9b4a0e9fa60c" +checksum = "06a387a62a2be6ec532eb4f9e1fc800f26d462c06b335d9c3ee54559a355b9fb" dependencies = [ "darling 0.14.4", "proc-macro2", @@ -3819,9 +3819,9 @@ dependencies = [ [[package]] name = "scale-typegen" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e050beece943a0d103a2a248e57fc475e1e68499d9079bdc6c3e76106bc3055e" +checksum = "9abba3c40137e1244c0f29ed648199bc8ec32569ee349673828e7a060c8e0298" dependencies = [ "proc-macro2", "quote", @@ -3833,9 +3833,9 @@ dependencies = [ [[package]] name = "scale-typegen-description" -version = "0.5.0" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee738c1dc6159972b6a22d0e041b6045dc803d88fd13e12e00adedfd6d41424f" +checksum = "2bdb6368c3f096fecb2ec6ca9798c0cc3b13842fd39c1e3d5f74e1bfac3de6c0" dependencies = [ "anyhow", "peekmore", @@ -3851,9 +3851,9 @@ dependencies = [ [[package]] name = "scale-value" -version = "0.15.1" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64129c6401da72fe84c24ca2070f5439efe0244d485198ea4889a194b7b58e98" +checksum = "f2cf9738c263c665144177201126bdad39d3d62512152f178f35002228026976" dependencies = [ "base58", "blake2", diff --git a/Cargo.toml b/Cargo.toml index 541080d385..d541115263 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,12 +91,12 @@ proc-macro2 = "1.0.82" quote = "1.0.36" regex = { version = "1.10.4", default-features = false } scale-info = { version = "2.11.0", default-features = false } -scale-value = { version = "0.15.1", default-features = false } +scale-value = { version = "0.16.0", default-features = false } scale-bits = { version = "0.6.0", default-features = false } -scale-decode = { version = "0.12.0", default-features = false } +scale-decode = { version = "0.13.0", default-features = false } scale-encode = { version = "0.7.0", default-features = false } -scale-typegen = "0.5.0" -scale-typegen-description = "0.5.0" +scale-typegen = "0.7.0" +scale-typegen-description = "0.7.0" serde = { version = "1.0.201", default-features = false, features = ["derive"] } serde_json = { version = "1.0.116", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } From 31c4328c8a076f3dbef12253659ca14900437dcb Mon Sep 17 00:00:00 2001 From: James Wilson Date: Thu, 16 May 2024 12:21:39 +0100 Subject: [PATCH 014/137] Update README.md (#1584) * Update README.md Make it clear that Subxt is not just for submitting extrinsics at the top of the README * And WebAssembly --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 35dbacfe5e..dd75354ad3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,16 @@ # subxt · ![build](https://github.com/paritytech/subxt/workflows/Rust/badge.svg) [![Latest Version](https://img.shields.io/crates/v/subxt.svg)](https://crates.io/crates/subxt) [![Documentation](https://docs.rs/subxt/badge.svg)](https://docs.rs/subxt) -A library to **sub**mit e**xt**rinsics to a [substrate](https://github.com/paritytech/substrate) node via RPC. +Subxt is a library for interacting with [Substrate](https://github.com/paritytech/polkadot-sdk) based nodes in Rust and WebAssembly. It can: + +- Submit Extrinsics (this is where the name comes from). +- Subscribe to blocks, reading the extrinsics and associated events from them. +- Read and iterate over storage values. +- Read constants and custom values from the metadata. +- Call runtime APIs, returning the results. +- Do all of the above via a safe, statically types interface or via a dynamic one when you need the flexibility. +- Compile to WASM and run entirely in the browser. +- Do a bunch of things in a `#[no_std]` environment via the `subxt-core` crate. +- Use a built-in light client (`smoldot`) to interact with chains. ## Usage From 3c9984c7e456ef96866036bf3c9c788ace52242e Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> Date: Thu, 16 May 2024 17:17:05 +0200 Subject: [PATCH 015/137] fix flaky testcase (#1589) full_client::client::unstable_rpcs::chainhead_v1_follow Co-authored-by: Niklas Adolfsson --- .../src/full_client/client/unstable_rpcs.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/testing/integration-tests/src/full_client/client/unstable_rpcs.rs b/testing/integration-tests/src/full_client/client/unstable_rpcs.rs index 2cb783a04a..830fb3b26c 100644 --- a/testing/integration-tests/src/full_client/client/unstable_rpcs.rs +++ b/testing/integration-tests/src/full_client/client/unstable_rpcs.rs @@ -32,12 +32,12 @@ async fn chainhead_v1_follow() { let event = blocks.next().await.unwrap().unwrap(); // The initialized event should contain the finalized block hash. let finalized_block_hash = legacy_rpc.chain_get_finalized_head().await.unwrap(); - assert_eq!( + assert_matches!( event, - FollowEvent::Initialized(Initialized { - finalized_block_hashes: vec![finalized_block_hash], - finalized_block_runtime: None, - }) + FollowEvent::Initialized(Initialized { finalized_block_hashes, finalized_block_runtime }) => { + assert!(finalized_block_hashes.contains(&finalized_block_hash)); + assert!(finalized_block_runtime.is_none()); + } ); // Expect subscription to produce runtime versions. @@ -50,7 +50,7 @@ async fn chainhead_v1_follow() { assert_matches!( event, FollowEvent::Initialized(init) => { - assert_eq!(init.finalized_block_hashes, vec![finalized_block_hash]); + assert!(init.finalized_block_hashes.contains(&finalized_block_hash)); if let Some(RuntimeEvent::Valid(RuntimeVersionEvent { spec })) = init.finalized_block_runtime { assert_eq!(spec.spec_version, runtime_version.spec_version); assert_eq!(spec.transaction_version, runtime_version.transaction_version); From 8c6452e22ad4f4e4d5ab782cd416b3641f411a15 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Thu, 16 May 2024 16:37:20 +0100 Subject: [PATCH 016/137] Prep for 0.36.0 release (#1587) * Prep for 0.36.0 release * Stabilise unstabvle backend notes * Make clearer that RPC methods dont retry --- CHANGELOG.md | 106 ++++++++++++++++++++++++++++++++ Cargo.lock | 30 ++++----- Cargo.toml | 16 ++--- subxt/examples/storage_fetch.rs | 4 +- 4 files changed, 131 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ece38f02b..872ac6ccb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,112 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.36.0] - 2024-05-16 + +This release adds a few new features, which I'll go over below in more detail. + +### [`subxt-core`](https://github.com/paritytech/subxt/pull/1508) + +We now have a brand new `subxt-core` crate, which is `#[no-std]` compatible, and contains a lot of the core logic that is needed in Subxt. Using this crate, you can do things in a no-std environment like: + +- `blocks`: decode and explore block bodies. +- `constants`: access and validate the constant addresses in some metadata. +- `custom_values`: access and validate the custom value addresses in some metadata. +- `metadata`: decode bytes into the metadata used throughout this library. +- `storage`: construct storage request payloads and decode the results you'd get back. +- `tx`: construct and sign transactions (extrinsics). +- `runtime_api`: construct runtime API request payloads and decode the results you'd get back. +- `events`: decode and explore events. + +Check out [the docs](https://docs.rs/subxt-core/latest/subxt_core/) for more, including examples of each case. + +A breaking change that comes from migrating a bunch of logic to this new crate is that the `ExtrinsicParams` trait is now handed `&ClientState` rather than a `Client`. `ClientState` is just a concrete struct containing the state that one needs for things like signed extensions. + +### [Support for reconnecting](https://github.com/paritytech/subxt/pull/1505) + +We've baked in a bunch of support for automatically reconnecting after a connection loss into Subxt. This comes in three parts: +1. An RPC client that is capable of reconnecting. This is gated behind the `unstable-reconnecting-rpc-client` feature flag at the moment, and +2. Handling in the subxt Backends such that when the RPC client notifies it that it is reconnecting, the backend will transparently handle this behind the scenes, or else pass on a `DisconnectedWillReconnect` error to the user where it cannot. Note that the individual `LegacyRpcMethods` and `UnstableRpcMethods` are _not_ automatically retried on reconnection. Which leads us to.. +3. A couple of util helpers (`subxt::backend::retry` and `subxt::backend::retry_stream`) which can be used in conjunction with a reconnecting RPC client to make it easy to automatically retry RPC method calls where needed. + +We'd love feedback on this reconnecting work! To try it out, enable the `unstable-reconnecting-rpc-client` feature flag and then you can make use of this like so: + +```rust +use std::time::Duration; +use futures::StreamExt; +use subxt::backend::rpc::reconnecting_rpc_client::{Client, ExponentialBackoff}; +use subxt::{OnlineClient, PolkadotConfig}; + +// Generate an interface that we can use from the node's metadata. +#[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata_small.scale")] +pub mod polkadot {} + +#[tokio::main] +async fn main() -> Result<(), Box> { + // Create a new client with with a reconnecting RPC client. + let rpc = Client::builder() + // We can configure the retry policy; here to an exponential backoff. + // This API accepts an iterator of retry delays, and here we use `take` + // to limit the number of retries. + .retry_policy( + ExponentialBackoff::from_millis(100) + .max_delay(Duration::from_secs(10)) + .take(3), + ) + .build("ws://localhost:9944".to_string()) + .await?; + + // Use this reconnecting client when instantiating a Subxt client: + let api: OnlineClient = OnlineClient::from_rpc_client(rpc.clone()).await?; +``` + +Check out the full example [here](https://github.com/paritytech/subxt/blob/64d3aae521112c8bc7366385c54a9340185d81ac/subxt/examples/setup_reconnecting_rpc_client.rs). + +### [Better Ethereum support](https://github.com/paritytech/subxt/pull/1501) + +We've added built-in support for Ethereum style chains (eg Frontier and Moonbeam) in `subxt-signer`, making it easier to sign transactions for these chains now. + +Check out a full example [here](https://github.com/paritytech/subxt/blob/327b70ac94c4d925c8529a1e301d596d7db181ea/subxt/examples/tx_basic_frontier.rs). + +We plan to improve on this in the future, baking in better Ethereum support if possible so that it's as seamless to use `AccountId20` as it is `AccountId32`. + +### Stabilizing the new V2 RPCs ([#1540](https://github.com/paritytech/subxt/pull/1540), [#1539](https://github.com/paritytech/subxt/pull/1539), [#1538](https://github.com/paritytech/subxt/pull/1538)) + +A bunch of the new RPCs are now stable in the spec, and have consequently been stabilized here, bringing the `unstable-backend` a step closer to being stabilized itself! We'll probably first remove the feature flag and next make it the default backend, in upcoming releases. + +All of the notable changes in this release are as follows: + +### Added + +- Add `frontier/ethereum` example ([#1557](https://github.com/paritytech/subxt/pull/1557)) +- Rpc: add full support reconnecting rpc client ([#1505](https://github.com/paritytech/subxt/pull/1505)) +- Signer: ethereum implementation ([#1501](https://github.com/paritytech/subxt/pull/1501)) +- `subxt-core` crate ([#1466](https://github.com/paritytech/subxt/pull/1466)) + +### Changed + +- Bump scale-decode and related deps to latest ([#1583](https://github.com/paritytech/subxt/pull/1583)) +- Update Artifacts (auto-generated) ([#1577](https://github.com/paritytech/subxt/pull/1577)) +- Update deps to use `scale-type-resolver` 0.2 ([#1565](https://github.com/paritytech/subxt/pull/1565)) +- Stabilize transactionBroadcast methods ([#1540](https://github.com/paritytech/subxt/pull/1540)) +- Stabilize transactionWatch methods ([#1539](https://github.com/paritytech/subxt/pull/1539)) +- Stabilize chainHead methods ([#1538](https://github.com/paritytech/subxt/pull/1538)) +- Rename traits to remove T suffix ([#1535](https://github.com/paritytech/subxt/pull/1535)) +- Add Debug/Clone/etc for common Configs for convenience ([#1542](https://github.com/paritytech/subxt/pull/1542)) +- Unstable_rpc: Add transactionBroadcast and transactionStop ([#1497](https://github.com/paritytech/subxt/pull/1497)) + +### Fixed + +- metadata: Fix cargo clippy ([#1574](https://github.com/paritytech/subxt/pull/1574)) +- Fixed import in `subxt-signer::eth` ([#1553](https://github.com/paritytech/subxt/pull/1553)) +- chore: fix typos and link broken ([#1541](https://github.com/paritytech/subxt/pull/1541)) +- Make subxt-core ready for publishing ([#1508](https://github.com/paritytech/subxt/pull/1508)) +- Remove dupe storage item if we get one back, to be compatible with Smoldot + legacy RPCs ([#1534](https://github.com/paritytech/subxt/pull/1534)) +- fix: substrate runner libp2p port ([#1533](https://github.com/paritytech/subxt/pull/1533)) +- Swap BinaryHeap for Vec to avoid Ord constraint issue ([#1523](https://github.com/paritytech/subxt/pull/1523)) +- storage_type: Strip key proper hash and entry bytes (32 instead of 16) ([#1522](https://github.com/paritytech/subxt/pull/1522)) +- testing: Prepare light client testing with substrate binary and add subxt-test macro ([#1507](https://github.com/paritytech/subxt/pull/1507)) + ## [0.35.0] - 2024-03-21 This release contains several fixes, adds `no_std` support to a couple of crates (`subxt-signer` and `subxt-metadata`) and introduces a few quality of life improvements, which I'll quickly cover: diff --git a/Cargo.lock b/Cargo.lock index 9de7e57adc..a3b7ac1505 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -327,7 +327,7 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "artifacts" -version = "0.35.0" +version = "0.36.0" dependencies = [ "substrate-runner", ] @@ -1812,7 +1812,7 @@ dependencies = [ [[package]] name = "generate-custom-metadata" -version = "0.35.0" +version = "0.36.0" dependencies = [ "frame-metadata 16.0.0", "parity-scale-codec", @@ -2309,7 +2309,7 @@ dependencies = [ [[package]] name = "integration-tests" -version = "0.35.0" +version = "0.36.0" dependencies = [ "assert_matches", "cfg_aliases", @@ -4746,7 +4746,7 @@ dependencies = [ [[package]] name = "substrate-runner" -version = "0.35.0" +version = "0.36.0" [[package]] name = "subtle" @@ -4756,7 +4756,7 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "subxt" -version = "0.35.0" +version = "0.36.0" dependencies = [ "assert_matches", "async-trait", @@ -4799,7 +4799,7 @@ dependencies = [ [[package]] name = "subxt-cli" -version = "0.35.0" +version = "0.36.0" dependencies = [ "clap 4.5.4", "color-eyre", @@ -4828,7 +4828,7 @@ dependencies = [ [[package]] name = "subxt-codegen" -version = "0.35.0" +version = "0.36.0" dependencies = [ "frame-metadata 16.0.0", "getrandom", @@ -4848,7 +4848,7 @@ dependencies = [ [[package]] name = "subxt-core" -version = "0.35.0" +version = "0.36.0" dependencies = [ "assert_matches", "base58", @@ -4881,7 +4881,7 @@ dependencies = [ [[package]] name = "subxt-lightclient" -version = "0.35.0" +version = "0.36.0" dependencies = [ "futures", "futures-timer", @@ -4906,7 +4906,7 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.35.0" +version = "0.36.0" dependencies = [ "darling 0.20.8", "parity-scale-codec", @@ -4919,7 +4919,7 @@ dependencies = [ [[package]] name = "subxt-metadata" -version = "0.35.0" +version = "0.36.0" dependencies = [ "assert_matches", "bitvec", @@ -4934,7 +4934,7 @@ dependencies = [ [[package]] name = "subxt-signer" -version = "0.35.0" +version = "0.36.0" dependencies = [ "bip32", "bip39", @@ -4962,7 +4962,7 @@ dependencies = [ [[package]] name = "subxt-test-macro" -version = "0.35.0" +version = "0.36.0" dependencies = [ "quote", "syn 2.0.60", @@ -5025,7 +5025,7 @@ dependencies = [ [[package]] name = "test-runtime" -version = "0.35.0" +version = "0.36.0" dependencies = [ "hex", "impl-serde", @@ -5450,7 +5450,7 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ui-tests" -version = "0.35.0" +version = "0.36.0" dependencies = [ "frame-metadata 16.0.0", "generate-custom-metadata", diff --git a/Cargo.toml b/Cargo.toml index d541115263..72ab8fa30c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ resolver = "2" [workspace.package] authors = ["Parity Technologies "] edition = "2021" -version = "0.35.0" +version = "0.36.0" rust-version = "1.74.0" license = "Apache-2.0 OR GPL-3.0" repository = "https://github.com/paritytech/subxt" @@ -139,13 +139,13 @@ sp-runtime = "34.0.0" sp-keyring = "34.0.0" # Subxt workspace crates: -subxt = { version = "0.35.0", path = "subxt", default-features = false } -subxt-core = { version = "0.35.0", path = "core", default-features = false } -subxt-macro = { version = "0.35.0", path = "macro" } -subxt-metadata = { version = "0.35.0", path = "metadata", default-features = false } -subxt-codegen = { version = "0.35.0", path = "codegen" } -subxt-signer = { version = "0.35.0", path = "signer", default-features = false } -subxt-lightclient = { version = "0.35.0", path = "lightclient", default-features = false } +subxt = { version = "0.36.0", path = "subxt", default-features = false } +subxt-core = { version = "0.36.0", path = "core", default-features = false } +subxt-macro = { version = "0.36.0", path = "macro" } +subxt-metadata = { version = "0.36.0", path = "metadata", default-features = false } +subxt-codegen = { version = "0.36.0", path = "codegen" } +subxt-signer = { version = "0.36.0", path = "signer", default-features = false } +subxt-lightclient = { version = "0.36.0", path = "lightclient", default-features = false } test-runtime = { path = "testing/test-runtime" } substrate-runner = { path = "testing/substrate-runner" } diff --git a/subxt/examples/storage_fetch.rs b/subxt/examples/storage_fetch.rs index 1ee4be2949..8888451ea2 100644 --- a/subxt/examples/storage_fetch.rs +++ b/subxt/examples/storage_fetch.rs @@ -22,10 +22,10 @@ async fn main() -> Result<(), Box> { .storage() .at_latest() .await? - .fetch_raw(subxt_core::storage::get_address_bytes(&storage_query, &api.metadata()).unwrap()) + .fetch(&storage_query) .await?; - let v = hex::encode(result.unwrap()); + let v = result.unwrap().data.free; println!("Alice: {v}"); Ok(()) } From f66a0688a9184aef402ee26448fe57b1de51f1d4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 10:12:45 +0200 Subject: [PATCH 017/137] build(deps): bump instant from 0.1.12 to 0.1.13 (#1595) Bumps [instant](https://github.com/sebcrozet/instant) from 0.1.12 to 0.1.13. - [Changelog](https://github.com/sebcrozet/instant/blob/master/CHANGELOG.md) - [Commits](https://github.com/sebcrozet/instant/commits) --- updated-dependencies: - dependency-name: instant dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a3b7ac1505..eb45e5a086 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2288,9 +2288,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index 72ab8fa30c..c41d4aa3c1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -129,7 +129,7 @@ send_wrapper = "0.6.0" js-sys = "0.3.69" wasm-bindgen-futures = "0.4.42" futures-timer = "3" -instant = { version = "0.1.12", default-features = false } +instant = { version = "0.1.13", default-features = false } tokio-util = "0.7.11" # Substrate crates: From 4e5978a883f02329bb45ed671e95a24255b59808 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 10:13:05 +0200 Subject: [PATCH 018/137] build(deps): bump serde_json from 1.0.116 to 1.0.117 (#1594) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.116 to 1.0.117. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.116...v1.0.117) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eb45e5a086..606b2d9206 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4039,9 +4039,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.116" +version = "1.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index c41d4aa3c1..7945aba31e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -98,7 +98,7 @@ scale-encode = { version = "0.7.0", default-features = false } scale-typegen = "0.7.0" scale-typegen-description = "0.7.0" serde = { version = "1.0.201", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.116", default-features = false } +serde_json = { version = "1.0.117", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.60" tokio = { version = "1.37", default-features = false } From 625963989e1128963d0e614703723f83200b0f8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 10:15:25 +0200 Subject: [PATCH 019/137] build(deps): bump trybuild from 1.0.93 to 1.0.96 (#1592) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.93 to 1.0.96. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.93...1.0.96) --- updated-dependencies: - dependency-name: trybuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 606b2d9206..2c8e7cbd03 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5418,9 +5418,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.93" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0e5d82932dfbf36df38de5df0cfe846d13430b3ae3fdc48b2e91ed692c8df7" +checksum = "33a5f13f11071020bb12de7a16b925d2d58636175c20c11dc5f96cb64bb6c9b3" dependencies = [ "glob 0.3.1", "serde", diff --git a/Cargo.toml b/Cargo.toml index 7945aba31e..75d827ca4b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -105,7 +105,7 @@ tokio = { version = "1.37", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" -trybuild = "1.0.93" +trybuild = "1.0.96" url = "2.5.0" wabt = "0.10.0" wasm-bindgen-test = "0.3.24" From 9c1b863ea9ccd98d9299c6283ae3fe84cd6f74f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 13:10:44 +0300 Subject: [PATCH 020/137] build(deps): bump thiserror from 1.0.60 to 1.0.61 (#1593) Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.60 to 1.0.61. - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.60...1.0.61) --- updated-dependencies: - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2c8e7cbd03..8cefd5e010 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5047,18 +5047,18 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.60" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18" +checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.60" +version = "1.0.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524" +checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 75d827ca4b..a4d81352f5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,7 @@ scale-typegen-description = "0.7.0" serde = { version = "1.0.201", default-features = false, features = ["derive"] } serde_json = { version = "1.0.117", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } -thiserror = "1.0.60" +thiserror = "1.0.61" tokio = { version = "1.37", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" From c9ef7168a16e0da7f335abcb6c10716522331614 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 13:10:51 +0300 Subject: [PATCH 021/137] build(deps): bump serde from 1.0.201 to 1.0.202 (#1591) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.201 to 1.0.202. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.201...v1.0.202) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8cefd5e010..589b07377b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4010,9 +4010,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.201" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "780f1cebed1629e4753a1a38a3c72d30b97ec044f0aef68cb26650a3c5cf363c" +checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" dependencies = [ "serde_derive", ] @@ -4028,9 +4028,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.201" +version = "1.0.202" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5e405930b9796f1c00bee880d03fc7e0bb4b9a11afc776885ffe84320da2865" +checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index a4d81352f5..865b1e3241 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -97,7 +97,7 @@ scale-decode = { version = "0.13.0", default-features = false } scale-encode = { version = "0.7.0", default-features = false } scale-typegen = "0.7.0" scale-typegen-description = "0.7.0" -serde = { version = "1.0.201", default-features = false, features = ["derive"] } +serde = { version = "1.0.202", default-features = false, features = ["derive"] } serde_json = { version = "1.0.117", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.61" From 4e53d5a4d5c943879490a25afc14bb367263b0ff Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 13:11:03 +0300 Subject: [PATCH 022/137] Update Artifacts (auto-generated) (#1596) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> --- artifacts/demo_chain_specs/polkadot.json | 8 ++++---- artifacts/polkadot_metadata_full.scale | Bin 415965 -> 415977 bytes artifacts/polkadot_metadata_small.scale | Bin 99977 -> 99989 bytes artifacts/polkadot_metadata_tiny.scale | Bin 67540 -> 67552 bytes .../src/full_client/codegen/polkadot.rs | 12 ++++++------ 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index bdbb8804da..0fcba9fc34 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x040e2aab4a4a368674ba2dfd907da64840b1b41cf6fcb7e3dfe6f44f7c493963937b823c0101b3d90a110000000013e30a110000000004f110867b6efec5d5c82065250458c809906d13b757cf5c139857db67ab47fdafd38b3c010113e30a110000000073ec0a11000000000895633b64f43066b7e35fb24be92f06c29f1aa9f9f9123d14ffe77d199c54f19a24953c010173ec0a1100000000d3f50a11000000000061a2fd5f48bda28a55cd8fbe5064c0ae0cceff7b689952e9d82f950eefa601e624953c010173ec0a1100000000d3f50a11000000000000100e2aab4a4a368674ba2dfd907da64840b1b41cf6fcb7e3dfe6f44f7c493963937b823c0101eb21000000000000b3d90a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c661490100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e01000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf500401000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000bcb677d4d301807cfa0fc3a81900795eb648336c0220dcc04f435f22e2a9c0310100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000002c4df89d1869f79ae7c9ac36bb355361d5cf3bcf201076476ac961aad535c46d0100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e66010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000224c5b7c7674050aeafd9bb5e710a8c0ba497cda375cc3daa5a16c171a5f445d01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000ceed28227bff3be87c1a5736f80e425d4a2f79de9edf49f620371fadfbb5e35e01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000d636bcd260e36a2bea4bb1667bbc86285967381ad5822f8cd98ff7d5c88c7430010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000004e111a61089b959a75e6a133ce75f4b23593279e2d98a4ce2aea1607d9dca84e0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe38103010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce69010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f1460100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000fdfed580a41b8d1abde7f5f9b09834ce55de1a81674508590162601198f4c5be010000000000000004000000000000000261a2fd5f48bda28a55cd8fbe5064c0ae0cceff7b689952e9d82f950eefa601e624953c0101ed2100000000000073ec0a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c661490100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e01000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf500401000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000bcb677d4d301807cfa0fc3a81900795eb648336c0220dcc04f435f22e2a9c0310100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000002c4df89d1869f79ae7c9ac36bb355361d5cf3bcf201076476ac961aad535c46d0100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e66010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000224c5b7c7674050aeafd9bb5e710a8c0ba497cda375cc3daa5a16c171a5f445d01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000ceed28227bff3be87c1a5736f80e425d4a2f79de9edf49f620371fadfbb5e35e01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000d636bcd260e36a2bea4bb1667bbc86285967381ad5822f8cd98ff7d5c88c7430010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000004e111a61089b959a75e6a133ce75f4b23593279e2d98a4ce2aea1607d9dca84e0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe38103010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce69010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f1460100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000709cfffdacb27c980557e28d3fad969c35551cda0a7303570cab1a9fce69634e010000000000000004000000000000000295633b64f43066b7e35fb24be92f06c29f1aa9f9f9123d14ffe77d199c54f19a24953c0101ed2100000000000073ec0a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c661490100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e01000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf500401000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000bcb677d4d301807cfa0fc3a81900795eb648336c0220dcc04f435f22e2a9c0310100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000002c4df89d1869f79ae7c9ac36bb355361d5cf3bcf201076476ac961aad535c46d0100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e66010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000224c5b7c7674050aeafd9bb5e710a8c0ba497cda375cc3daa5a16c171a5f445d01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000ceed28227bff3be87c1a5736f80e425d4a2f79de9edf49f620371fadfbb5e35e01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000d636bcd260e36a2bea4bb1667bbc86285967381ad5822f8cd98ff7d5c88c7430010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000004e111a61089b959a75e6a133ce75f4b23593279e2d98a4ce2aea1607d9dca84e0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe38103010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce69010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f1460100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000709cfffdacb27c980557e28d3fad969c35551cda0a7303570cab1a9fce69634e0100000000000000040000000000000002f110867b6efec5d5c82065250458c809906d13b757cf5c139857db67ab47fdafd38b3c0101ec2100000000000013e30a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c661490100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e01000000000000003ed19f8df1a2d2c1176df07baff4206c94f4d752de6a46c5f3f34264a88b0a0701000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f70010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf500401000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc3531001000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb37701000000000000002894d4ff5f0bcf8c74f6c98d18f4b97c00a51da2dd5f45d9dc450ddf0a82664f01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c17839010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c53901000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000001081bee090d8e63a5fbe5cfddec37bce3fd08a3411d42f57e6ac6c78ee2d2c5a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e5101000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000bcb677d4d301807cfa0fc3a81900795eb648336c0220dcc04f435f22e2a9c0310100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000a4cd8b073d6c005d5925ec6b8aa2b2e3f8c0aacdf82165f36f56345f6f33f6600100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e0501000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b0100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000002c4df89d1869f79ae7c9ac36bb355361d5cf3bcf201076476ac961aad535c46d0100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e66010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000c6abb3993ce1eaf0dee23d0fd6447cdd31f52594295c99d582ce15d75e3a28220100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c6001000000000000001a15acd9aec8d1dd06c7b6a46be298c3fc2ecd51be6724a63da4da286e306f720100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000211ca2d28fe0a93f6cf5442b7926ef82fabfa4d29945207c3bf7dffc61f121a01000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000fc6b68c2f556cb4bbfb09cea4ee39e47aceb7809408e38ae4696d4caeed3c91b0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000007617b69110c43683b5000788259be855890c474be8fed65d7b1dae1d534ef85c010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000224c5b7c7674050aeafd9bb5e710a8c0ba497cda375cc3daa5a16c171a5f445d01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d98233801000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f01000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000ceed28227bff3be87c1a5736f80e425d4a2f79de9edf49f620371fadfbb5e35e01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000d636bcd260e36a2bea4bb1667bbc86285967381ad5822f8cd98ff7d5c88c7430010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000004e111a61089b959a75e6a133ce75f4b23593279e2d98a4ce2aea1607d9dca84e0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe38103010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce69010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a2730100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f1460100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000094e469c0f6ac6c3fe96e48b9b77d71aa2af0b45ae353e02137ef43a82f3ab3af0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5180496, - "finalizedBlockHeader": "0x50d954eff6293ce7ea8d252f937c149f6bd22e62380702a0f9b2741409531e2f6a5bf20456edf5438b95a9679bd267aedef2f9e7b9c29fea7f2c0b1dcace966c8bd643fc1c3b56c1263c1ef4b77efc28e20f3b73f46801427075654ba9c6c603a800c2ba0c0642414245b501039a000000cae40a11000000009af7a16f9d6066289236c9bd0a4ea9bb57e6290ac6cb5c8f1f43f3323e75df3e5ed6f36300e53d9b6cab938570accb0c9b906fef0978f931b895af7038fcbd060f73560dca771cead7c3a4d5a057f245bb57cedf61d848e1d4b84a584ad8840e044245454684033127b87162e9f1645ff6a9c398624db38387f030427638406f0f0849e33dbf1405424142450101f09e402e967be3688fd3414d47e11b99535ae982d0828b34d4ef6199eb916a07e2b8075c34de02fa8e066a39e4c2477eb780dfede5fe1fdea2a481bd0be3eb84", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f420100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000907fc1295e137738f8862d34490ad0746b80926e236e05ef8b958084f1d91a850100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e910e45c162a4e9ae379bfcca70ac2165ce37f72652ef16898e86fd54f85ec11010000000000000054e3d0d93579bedb7759b60e4b5a009f93fc86ff8da59c00b06b318a4c8d95ea0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000cd5ff80f07fb7c283714e62abd9b5dd07848aeab04c2ba862fcb04f6c3857dcb0100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000f151ff04cc1a5380cb00ac1e4dfc46abc031c4450877a4db963bb3522ab51aab010000000000000032b5e70f48897c333d520934f656ac3cafc040ebb356eee1b9081179d99abf990100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b89222010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000065dc7fefab39364b5669a360cfd3576a24742b82c646f97d0fc49386de6e0a410100000000000000799363fc98b936b54755c8532ae88418a28c3ba30666e6e68dd57dd0ad80c00d0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca6101000000000000000f42866aa6927f1c5916a8a1a5a5cba2d88e1fff957d80df701617d93ee6407801000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000cfdbbf96997bebc3c3315c1a064872d8804beb94bda07854237d05f4d3e2d9ef010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f0100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b01000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000002ff3e4c0ea1f1af0a6ee4a8fc30a57e51c83a4a4ef8794fc5988dea435416d070100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe9794701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000091b2f484e97938e7e844fc5b7355772548bb80f6ac9b3335d8a70d4ecd893600010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000002626d4e6ea5ea56e0d4d6c00064778956aef2ff2e560080f27f180c97d41bf3001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000aa674be249403288a8078e209231e764e3679f2f66a1070ea5d9b5b420fc53ab0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000559c6fad38e962a75d1e2b651563e6a9ba8b20d98069d602fa13a808754d9ada01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000068f2c90b93ba6130eb3a03f568411a471d0710086a468f8cba32b34e37411dd0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000d2ec5312609b0a955652cc5a031f9df32dc6db062dc8cafd5ae60badc946b2b90100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a190010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f6490001000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000a81425a86503d911cf060b51310f0bb796f5ce2cb656e524d23f7fac3c9c48000100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003db5f801c2e208df9a9b55c5f2d459ee2c3dc9fb94e208695f2ee4025f4bed4f010000000000000016b36c754ae6e651c5c6342f5f9bce5299f4dee1111345883addc0b3e2329f18010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f270100000000000000a77cedf144ff05ee72b1d98e35ebd033444347b81873bd39be16ebf6eaeb11b901000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000060f9c98c895b147d505fab521116929a6978af9443f7e4bfc114bce44480ec2001000000000000000228d7fc42b304906518cbd91d73a5384c4893de6cbfe1e7346999df642d3d000100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c8801000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000a40fdf74bca48725a5ca54a379b6c9124f81a06b2e728746b09f3a27b3b3bf040100000000000000b9f54ca6fa0be84b1c7b42a426f37cb4218cc7840b9e1aea647e215739cf19540100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000ff5d4070a8a7798cd22dbc7a7e2a909b697e738683e701aeff696af26ebff07201000000000000005667d5ab2b7b56ad406d51dc657f573e65bc1fa542fc3ff43793a487af92aab601000000000000002cb6878926a8f7dcef3835911a687e37dd680dd9589f96f0cd45b1c1b429d02c01000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000dc5289899ba3e91edf93781843f9abbc99b3ae0beb940c385edf706acdf0d2540100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000572538d1aaea11c9979bf074e0723ba0228690aa9ee8aa0b81db32aabfd822de010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000532bc96e942be9de9214f40c9d221fb9235856f6a781a8be0161acf804b4dbe40100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe6626860100000000000000e09d677a7d9eaa0c82aeaab90dee017ff8b9fdf058c6896d173ab29f4ed24d8001000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000002dd9a73d6ca904a6dbcd597b5f90e412616cf506cb3f3543405393b6721cf4490100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000009e4dc072780c293ebda8107e014d03b3dea3d3f14bc9d02cb0c9c0776ce63b990100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000015b49bdd8cb8b9110a45bd1985746655b330829e1dbe7580ade2fab6531799d30100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab4010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb09009501000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e20100000000000000efe5a28c978573f62f7b5bb6cc06866350d87201c37d342f643bf6713c3349a501000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000098b4b43d718a523ea7af6b507221638443f55e676b5e69f22bbf28b6e2d9707401000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000007a1291795805dbe300425311ae50ed698450b1912b62e5b5a3264c68bfa97076010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000425d9edc1cc5cf795f0caee680a379215cb77d71c69bfe41296df63cb2ac344301000000000000004f7d68f733bb0699f0a1d85f331e073ebec15f6663c17179753f7f38abf3331701000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f0100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000d227434a77cd7b7127c039eb9995aeb025a242c36ca7116372c7c8fe5bc921b50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000f29a410d52229ba73c895256f5bdb4b05663bbd08b2767c80e7e7d60f020fd1a0100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000000132d9e682cf8d45ce8efd4bef165a26da5d1349ea1fe9f51abd6dc762272020100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000004655b8a8e7f4e3532b7aa5e461d25ca6d5af49e0557da59654d15fe1d1eda4c010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c80100000000000000bc4cbcdb5cba3678da8253ddca6502f717f82f26af69e7884c69c2560cb1eedb010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e70100000000000000be223d49fdccd102646c9b0d62130fbc8e7f0324d55a3eabaaffb5ed1616795a010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc01000000000000007e05f9592cac9232e17c222d076c6abdb6f5f5b8175d5b3858ffdae0324b411f01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d499301000000000000000f19c3ed807ad5f2b7546f5e6c5e9bb934835d54ed1f4f989540b86a2ca02b5501000000000000006a536f056479ef8f567471f1859757e3bb6284d4ce04319356eb2d6f5de119710100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a59010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d30100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd0301000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000ee47e05a65a6174fe68fe813b92c23422c44e3e9109fea3724b2c875b91bb6180100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000cda04a8eca15992b2479c73acd756837a661e422efe5c54a03b6c2b65568967a01000000000000000ea1cd7154cd4d50d009d8db3d6d40897d9170ff97e6493c8d0dd2ca7458230701000000000000008a90ddd7f17b99d595a1ce01de26ccc4f6e6a3783cbe11dfaffe491fca97aaf60100000000000000a4f4bbd302c06389ee3614c0943af03d52364f172ef05021aa93d12aef53c32901000000000000006141751a8e08858eaa5e3f0b3472244f90d23eb3094dcaad05fe82e592d058480100000000000000db8e840e99078eaf04cb3f1a4d7973607f3e54060b8d100a966f370daf9adc8f01000000000000002dd8b91790e7023f68c52021f40fe08a5769eb7e3f3a6f6c8a54454012a54974010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d550100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006b637efb1db7c91b689a3dc0a5e42b0f528e5f31d55b1c264452dda3aa2d83d901000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000ca070000000000000001da963c0100291f00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01" + "babeEpochChanges": "0x0462be1d7f955d318053a46c7764a31fe437465b7a978c16cd91ed6544025f30c754093e010173630c1100000000d36c0c110000000004a279d4c8ad7b76d38f76ec01220a99d7e9a90246843f1377fdd6aaa1904b890fab123e0101d36c0c110000000033760c1100000000043655472e89b8314bee2666a5f60a18a20f09223334f9ae374e5346db39ed572a001c3e010133760c1100000000937f0c110000000000000c3655472e89b8314bee2666a5f60a18a20f09223334f9ae374e5346db39ed572a001c3e0101172200000000000033760c11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc353100100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d07401000000000000005ead982fe12649ace29269eddedca2d53d158903191b650c7d88837490857d54010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e453dc2fc07cd1ecb220d1aad669e72554850f454c184daf87a4df5710a5e54e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b18145010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b78010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e7901000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000980a1f19be33b36426340ca085bc454b7db2c34735930978808f54f8f266d62301000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de3801000000000000001a3ea41fd7c529d6705daa42454e73fb5094a0ecaf6ebb4f0ee07c044b70ba6b01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000044f8580dad3559a76d0b66af3ddddd0dfbf32c9e4dfa034b318ae6157d9f6544010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000fea502b0ab1db6f349056e0cdff4dfe1546a462de207c6705120e2def4275478010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000ae91c31922f356569c76a9cd203ba71b3eadedac2d8d001feebf43a39ccd10370100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd07010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a01000000000000008e3509e2bcb4497b4bd7b09dbc1d5647212386afc663222f97602067211607160100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f42236010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c0001000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe3810301000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008859563f3d771b1ca9e5afb70b9c760158a970bf9767060c34af3eb32354ba5d0100000000000000ea91265245370af168ddb825e2429a9b0e9618d5d96444c2dc2764b1b7b0bb4a0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000002af697b059e695cd91918674e6c6140adda4b9f301004a6146598bd2d4e8f2bc010000000000000004000000000000000262be1d7f955d318053a46c7764a31fe437465b7a978c16cd91ed6544025f30c754093e0101152200000000000073630c11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc353100100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d07401000000000000005ead982fe12649ace29269eddedca2d53d158903191b650c7d88837490857d54010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e453dc2fc07cd1ecb220d1aad669e72554850f454c184daf87a4df5710a5e54e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b18145010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b78010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e7901000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000980a1f19be33b36426340ca085bc454b7db2c34735930978808f54f8f266d62301000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de3801000000000000001a3ea41fd7c529d6705daa42454e73fb5094a0ecaf6ebb4f0ee07c044b70ba6b01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000044f8580dad3559a76d0b66af3ddddd0dfbf32c9e4dfa034b318ae6157d9f6544010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000fea502b0ab1db6f349056e0cdff4dfe1546a462de207c6705120e2def4275478010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000ae91c31922f356569c76a9cd203ba71b3eadedac2d8d001feebf43a39ccd10370100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd07010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a01000000000000008e3509e2bcb4497b4bd7b09dbc1d5647212386afc663222f97602067211607160100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f42236010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c0001000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe3810301000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008859563f3d771b1ca9e5afb70b9c760158a970bf9767060c34af3eb32354ba5d0100000000000000ea91265245370af168ddb825e2429a9b0e9618d5d96444c2dc2764b1b7b0bb4a0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000007d4ee4d569d4a86c34b95825350cddc88c47a67fdd40fb3bf749c2209b4640530100000000000000040000000000000002a279d4c8ad7b76d38f76ec01220a99d7e9a90246843f1377fdd6aaa1904b890fab123e01011622000000000000d36c0c11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc353100100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d07401000000000000005ead982fe12649ace29269eddedca2d53d158903191b650c7d88837490857d54010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e453dc2fc07cd1ecb220d1aad669e72554850f454c184daf87a4df5710a5e54e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b18145010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b78010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e7901000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000980a1f19be33b36426340ca085bc454b7db2c34735930978808f54f8f266d62301000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de3801000000000000001a3ea41fd7c529d6705daa42454e73fb5094a0ecaf6ebb4f0ee07c044b70ba6b01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000044f8580dad3559a76d0b66af3ddddd0dfbf32c9e4dfa034b318ae6157d9f6544010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000fea502b0ab1db6f349056e0cdff4dfe1546a462de207c6705120e2def4275478010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000ae91c31922f356569c76a9cd203ba71b3eadedac2d8d001feebf43a39ccd10370100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd07010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a01000000000000008e3509e2bcb4497b4bd7b09dbc1d5647212386afc663222f97602067211607160100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f42236010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c0001000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe3810301000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008859563f3d771b1ca9e5afb70b9c760158a970bf9767060c34af3eb32354ba5d0100000000000000ea91265245370af168ddb825e2429a9b0e9618d5d96444c2dc2764b1b7b0bb4a0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000dced6077bbdb28a009e6a4c4d42cbd7637f4c258e54f788958428ca288f3ca2f0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5205320, + "finalizedBlockHeader": "0x688e6f3ffca7c7027f65f2070fa7659b77a7b9245c66214a778ec2ebb648231c9e76f8048580b47f2351a4060d3fd4bcac9623041e8285d75b9c509188a9f3dd17800b39528f787644e3ff33ae02cf934c659d80f187ff646dd7f404524a0a421e076ab50c0642414245b5010310010000816e0c1100000000fcb8d2a7f5d3a6bf45268fa2d40f179a4b6a38e1b67ecb33bb32ef1f7f57097264dc141391c452b00b0b6460454528c0a8032adce527e00692f1e002c427a907dd5569835db1fea2e6adf232b75b30992d654acf12be21e00b563f8af889fe0b04424545468403c3cc9e492d7bcb358d0f14870755b77b05b1dd32607659f1a97a3bff0ef0257505424142450101ac6c76e9d4372d206bbd4121db88bdc37df788d494bb92788cc81e4ea3b01b3a71c02a94857119cf2bf4dc0939af2a98aff5757e1c22a53a4b05108ca033448f", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000001bae9b223279cf7f43805d7158bc4a31a981be184f969784091af289f854a0a80100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000fe5f4f4b0b7e9232250a6b1cb8cd1375849a10e4db4d8f6a50064c576d8820560100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f42010000000000000057c55b2bbb6b86d6e9aedef9b51904ec5b29d8c1271308aa625fa445532738320100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b280100000000000000bd26ab1d5334c20a4a6840be7bab84b98aec00f0d49eeac5b2c93f4db06dcb850100000000000000bc08c197f7281aebdbd1dad6c2b02a6831ee8b5320745f9be57eb2a1f1b0fa9f0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000cd5ff80f07fb7c283714e62abd9b5dd07848aeab04c2ba862fcb04f6c3857dcb0100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000f151ff04cc1a5380cb00ac1e4dfc46abc031c4450877a4db963bb3522ab51aab010000000000000032b5e70f48897c333d520934f656ac3cafc040ebb356eee1b9081179d99abf990100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b290010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000065dc7fefab39364b5669a360cfd3576a24742b82c646f97d0fc49386de6e0a410100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca6101000000000000000f42866aa6927f1c5916a8a1a5a5cba2d88e1fff957d80df701617d93ee640780100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa20100000000000000158c1da8710a8c30ffe6e065fa9a0170dccc037c65aeebd4be7d6b9b860da1b501000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000e3f09f7a456cd9ee21588eab7ede2316e7af866ba31d5a3e7e3f7bcf40f802a301000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd310100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf20100000000000000496db58682384b87786aa7ee065fda7c786c8a5401f1969539a4f48a90d164e5010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b0100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000002ff3e4c0ea1f1af0a6ee4a8fc30a57e51c83a4a4ef8794fc5988dea435416d070100000000000000e0fc24bd5365279a1f16e02846535936fef8ba8a1d0be2ffa544b7f1773874df01000000000000009b11703e71109c2f7e5d5ed6780e867236062929da90c70ea616af2e99e80f2d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000600e433183aa04247203b358cbdb99116a3c5d6a3c4b2692487a2b3791de004d010000000000000027791275ae7d4735aa45e70210663067f7d268aa57126a26044c8f6d8572a7d80100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe979470100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000014c2a4269fbc00ac1412c8c73abe05c3030e5ed59f4dcda799bb6e2d12d0ffdb010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000002626d4e6ea5ea56e0d4d6c00064778956aef2ff2e560080f27f180c97d41bf3001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000e5df12b672ff723fb3a00817d48fa27843bc7854328dfed88bb0e4afed20b65a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000c07fcee8eace03cf683fc1c03d8398ac9cb79217519302556b8f19dc8446680d01000000000000007c6dcd08a7dae2fed7a44e3ef208d86e2a4c41694f0154d0e1194fa3644ad96401000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000068f2c90b93ba6130eb3a03f568411a471d0710086a468f8cba32b34e37411dd0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a190010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f6490001000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000a81425a86503d911cf060b51310f0bb796f5ce2cb656e524d23f7fac3c9c48000100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000060f9c98c895b147d505fab521116929a6978af9443f7e4bfc114bce44480ec20010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab601000000000000000228d7fc42b304906518cbd91d73a5384c4893de6cbfe1e7346999df642d3d000100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000067d38381d74d8575dcffc6e3340bc47241ef2ea177f66ed738a417ab1dd459301000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000f3e3c09e028fa2d5fdeeba91ab0f427d48fa60a1eacf2b97bd62753c53bd0e5601000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000a40fdf74bca48725a5ca54a379b6c9124f81a06b2e728746b09f3a27b3b3bf040100000000000000b9f54ca6fa0be84b1c7b42a426f37cb4218cc7840b9e1aea647e215739cf19540100000000000000cdf28bc59aab771bc1450c9fa1b61f67c276511223a2aba191c33ebf017d91190100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd010000000000000051f30c189018e3ea45d60393bfd4e7e690bae78908458616537a362329a4309c0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b49727292401000000000000008eb93e87e10f3f22cea9599a134ccf40eb28e7ffa3124b1616408bbf7418ac9e0100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000ff5d4070a8a7798cd22dbc7a7e2a909b697e738683e701aeff696af26ebff07201000000000000005667d5ab2b7b56ad406d51dc657f573e65bc1fa542fc3ff43793a487af92aab601000000000000002cb6878926a8f7dcef3835911a687e37dd680dd9589f96f0cd45b1c1b429d02c01000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa064901000000000000008118d80425d3b1fb332be3b1d02e6456b8ff7fa7414ef940c36c1e8e3262766b0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000572538d1aaea11c9979bf074e0723ba0228690aa9ee8aa0b81db32aabfd822de010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe6626860100000000000000e09d677a7d9eaa0c82aeaab90dee017ff8b9fdf058c6896d173ab29f4ed24d8001000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad10100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000009e4dc072780c293ebda8107e014d03b3dea3d3f14bc9d02cb0c9c0776ce63b990100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab4010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000ca6dec12aaf7e9c1bbb5e611efe9f447ea489b08db6145681b9e499dd6a26b400100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac965901000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a00100000000000000b0f92a6bf11a029ed8c72697894b86d9fb4d16cded7274e9046946c607fc2ad201000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e853010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000193dfdde1c1e8f0d91530a15b8eab00e255cc2dd6b19e689868120922f79a5bb0100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000d227434a77cd7b7127c039eb9995aeb025a242c36ca7116372c7c8fe5bc921b50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d010000000000000000132d9e682cf8d45ce8efd4bef165a26da5d1349ea1fe9f51abd6dc7622720201000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc1890100000000000000a54cf1007cb124c12d4fe9c27e1d9aa2c4a238f35be9d6ef4c321f061039ea3f01000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a02401000000000000001773a9984bd619d4469608aeeb38a98e688474cf0870a45ced8d297ba56275be0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e70100000000000000be223d49fdccd102646c9b0d62130fbc8e7f0324d55a3eabaaffb5ed1616795a010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b1901000000000000002d12330b8029ef13e02675c6df0e10c6fdbc10e974803730866e603305ff4471010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d499301000000000000000f19c3ed807ad5f2b7546f5e6c5e9bb934835d54ed1f4f989540b86a2ca02b5501000000000000006a536f056479ef8f567471f1859757e3bb6284d4ce04319356eb2d6f5de119710100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000eaaf51c4db0ac374aee2c43ce34866dbce4db52f43096392566898f8570d988f0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd0301000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000ee47e05a65a6174fe68fe813b92c23422c44e3e9109fea3724b2c875b91bb6180100000000000000b14d7eb2d5f956e23a7407b7cc5ba971171d0ac45169351ccc6f836c9ae796730100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b01000000000000008a90ddd7f17b99d595a1ce01de26ccc4f6e6a3783cbe11dfaffe491fca97aaf601000000000000006141751a8e08858eaa5e3f0b3472244f90d23eb3094dcaad05fe82e592d05848010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d5501000000000000003e8b4d65acf5a80cf03df3c089985dd8b95213ab54e7a6b1bedd92eb2a32a71c0100000000000000b81e2a5195eab7b9a47cdaaed0a248c06c9517546792da63c48abeae8b6a1ce20100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b01000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff274010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000d7070000000000000001a71d3e01005d1f00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index 828381654dd447a11e1506aeaa809608dab91298..e794ea4cd82d2c9f6a3d3390193e155eba95580f 100644 GIT binary patch delta 69 zcmcb+QS#+R$%Yoj7N!>FEi5;#v8wo_CZ@IDyvDNq<~7#76vnC3`E1!@SU{rNk65#L NGNOoN*|HT&0|4GD8Lt2U delta 55 zcmaF4QS$Ca$%Yoj7N!>FEi5;#F^aU`y~eWr?lsoF6vo!+Io513+s|0Dc{0K{Wwva^ F(g2=S72f~= diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 8279b3b7dd10027d59cf9787cab634ebbe2b0f77..f0053716d6bdf21fb6bf46a4fc779f7d82b4212a 100644 GIT binary patch delta 59 zcmeC|Wt-Z|*06=~uo$a~PikV?_9J49{y~gWr|-&Qj9~$b6l5}bGNOoxWiu8_0|0WW B6deEn delta 45 ucmbQ*%huV;*06=~uo$Dr_7h@^{y~hb(JCc) diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index d487ec8bfc063564b779ffb2c657195f43804444..b46836dcb6b2b3da912bef625179de61fd15edda 100644 GIT binary patch delta 52 vcmcc8&+?$3Wkbq#Ru!Mr#I((++y5CcPMys4CWZyfKk&+v5t*O%CQljwT;&#N delta 52 zcmaFR&vK=oWkbq#Mv={#+y5CcwocA?6|?!oD^ErUlOv!gKR+#&rDgg;c1E$y6W#, - runtime_types::sp_mmr_primitives::Proof< + runtime_types::sp_mmr_primitives::LeafProof< ::subxt::ext::subxt_core::utils::H256, >, ), @@ -3081,7 +3081,7 @@ pub mod api { pub type Leaves = ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::sp_mmr_primitives::EncodableOpaqueLeaf, >; - pub type Proof = runtime_types::sp_mmr_primitives::Proof< + pub type Proof = runtime_types::sp_mmr_primitives::LeafProof< ::subxt::ext::subxt_core::utils::H256, >; pub mod output { @@ -3114,7 +3114,7 @@ pub mod api { pub type Leaves = ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::sp_mmr_primitives::EncodableOpaqueLeaf, >; - pub type Proof = runtime_types::sp_mmr_primitives::Proof< + pub type Proof = runtime_types::sp_mmr_primitives::LeafProof< ::subxt::ext::subxt_core::utils::H256, >; pub mod output { @@ -68006,7 +68006,7 @@ pub mod api { # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub struct Proof<_0> { + pub struct LeafProof<_0> { pub leaf_indices: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u64>, pub leaf_count: ::core::primitive::u64, pub items: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, From dd343be1f34e38fcb2778b287ab25ef6de1d7bf1 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Thu, 23 May 2024 10:54:53 +0100 Subject: [PATCH 023/137] Add a basic version of the CheckMetadataHash signed extension (#1590) * Add a basic version of the CheckMetadataHash signed extension * update example too * encode None to signer payload when no hash provided * Enable decoding txs using CheckMetadataHash, too * Tidy up decoding CheckMetadataHash --- core/src/config/default_extrinsic_params.rs | 2 + core/src/config/signed_extensions.rs | 55 +++++++++++++++++++ .../examples/setup_config_signed_extension.rs | 5 +- 3 files changed, 60 insertions(+), 2 deletions(-) diff --git a/core/src/config/default_extrinsic_params.rs b/core/src/config/default_extrinsic_params.rs index 344c1a3c4e..628f639843 100644 --- a/core/src/config/default_extrinsic_params.rs +++ b/core/src/config/default_extrinsic_params.rs @@ -18,6 +18,7 @@ pub type DefaultExtrinsicParams = signed_extensions::AnyOf< signed_extensions::CheckMortality, signed_extensions::ChargeAssetTxPayment, signed_extensions::ChargeTransactionPayment, + signed_extensions::CheckMetadataHash, ), >; @@ -151,6 +152,7 @@ impl DefaultExtrinsicParamsBuilder { check_mortality_params, charge_asset_tx_params, charge_transaction_params, + (), ) } } diff --git a/core/src/config/signed_extensions.rs b/core/src/config/signed_extensions.rs index 4ecd6684db..893872b6f2 100644 --- a/core/src/config/signed_extensions.rs +++ b/core/src/config/signed_extensions.rs @@ -40,6 +40,61 @@ pub trait SignedExtension: ExtrinsicParams { fn matches(identifier: &str, _type_id: u32, _types: &PortableRegistry) -> bool; } +/// The [`CheckMetadataHash`] signed extension. +pub struct CheckMetadataHash { + // Eventually we might provide or calculate the metadata hash here, + // but for now we never provide a hash and so this is empty. +} + +impl ExtrinsicParams for CheckMetadataHash { + type Params = (); + + fn new(_client: &ClientState, _params: Self::Params) -> Result { + Ok(CheckMetadataHash {}) + } +} + +impl ExtrinsicParamsEncoder for CheckMetadataHash { + fn encode_extra_to(&self, v: &mut Vec) { + // A single 0 byte in the TX payload indicates that the chain should + // _not_ expect any metadata hash to exist in the signer payload. + 0u8.encode_to(v); + } + fn encode_additional_to(&self, v: &mut Vec) { + // We provide no metadata hash in the signer payload to align with the above. + None::<()>.encode_to(v); + } +} + +impl SignedExtension for CheckMetadataHash { + type Decoded = CheckMetadataHashMode; + fn matches(identifier: &str, _type_id: u32, _types: &PortableRegistry) -> bool { + identifier == "CheckMetadataHash" + } +} + +/// Is metadata checking enabled or disabled? +// Dev note: The "Disabled" and "Enabled" variant names match those that the +// signed extension will be encoded with, in order that DecodeAsType will work +// properly. +#[derive(Copy, Clone, Debug, DecodeAsType)] +pub enum CheckMetadataHashMode { + /// No hash was provided in the signer payload. + Disabled, + /// A hash was provided in the signer payload. + Enabled, +} + +impl CheckMetadataHashMode { + /// Is metadata checking enabled or disabled for this transaction? + pub fn is_enabled(&self) -> bool { + match self { + CheckMetadataHashMode::Disabled => false, + CheckMetadataHashMode::Enabled => true, + } + } +} + /// The [`CheckSpecVersion`] signed extension. pub struct CheckSpecVersion(u32); diff --git a/subxt/examples/setup_config_signed_extension.rs b/subxt/examples/setup_config_signed_extension.rs index 66585e46bb..0349d03380 100644 --- a/subxt/examples/setup_config_signed_extension.rs +++ b/subxt/examples/setup_config_signed_extension.rs @@ -37,6 +37,7 @@ impl Config for CustomConfig { signed_extensions::CheckMortality, signed_extensions::ChargeAssetTxPayment, signed_extensions::ChargeTransactionPayment, + signed_extensions::CheckMetadataHash, // And add a new one of our own: CustomSignedExtension, ), @@ -83,8 +84,8 @@ impl ExtrinsicParamsEncoder for CustomSignedExtension { pub fn custom( params: DefaultExtrinsicParamsBuilder, ) -> <::ExtrinsicParams as ExtrinsicParams>::Params { - let (a, b, c, d, e, f, g) = params.build(); - (a, b, c, d, e, f, g, ()) + let (a, b, c, d, e, f, g, h) = params.build(); + (a, b, c, d, e, f, g, h, ()) } #[tokio::main] From 13747dbd6d766f653424bac38177fad5d7c88b40 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Fri, 24 May 2024 10:48:39 +0200 Subject: [PATCH 024/137] fix tests: add CheckMetadataHash ext (#1606) --- testing/integration-tests/src/full_client/blocks/mod.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/testing/integration-tests/src/full_client/blocks/mod.rs b/testing/integration-tests/src/full_client/blocks/mod.rs index 2686b954ae..c83e395ee5 100644 --- a/testing/integration-tests/src/full_client/blocks/mod.rs +++ b/testing/integration-tests/src/full_client/blocks/mod.rs @@ -329,6 +329,7 @@ async fn decode_signed_extensions_from_blocks() { "CheckNonce", "CheckWeight", "ChargeAssetTxPayment", + "CheckMetadataHash", ]; assert_eq!(extensions1.iter().count(), expected_signed_extensions.len()); From ae5c0927c671ae8492f66ddb3346e25e0d41b5a5 Mon Sep 17 00:00:00 2001 From: Matteo Muraca <56828990+muraca@users.noreply.github.com> Date: Fri, 24 May 2024 10:48:55 +0200 Subject: [PATCH 025/137] Implemented `sign_prehashed` for `ecdsa::Keypair` and `eth::Keypair` (#1598) * Implemented `sign_prehashed` for `eth::Keypair` * missing import * fmt * Implemented `sign_prehashed` for `ecdsa::Keypair` * use `[u8; 32]` type * ditched From impl --- signer/src/ecdsa.rs | 8 ++++++-- signer/src/eth.rs | 10 ++++++---- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/signer/src/ecdsa.rs b/signer/src/ecdsa.rs index 8531d4b51c..e5b6c4507c 100644 --- a/signer/src/ecdsa.rs +++ b/signer/src/ecdsa.rs @@ -160,8 +160,12 @@ impl Keypair { /// Sign some message. These bytes can be used directly in a Substrate `MultiSignature::Ecdsa(..)`. pub fn sign(&self, message: &[u8]) -> Signature { - let message_hash = sp_crypto_hashing::blake2_256(message); - let wrapped = Message::from_digest_slice(&message_hash).expect("Message is 32 bytes; qed"); + self.sign_prehashed(&sp_crypto_hashing::blake2_256(message)) + } + + /// Signs a pre-hashed message. + pub fn sign_prehashed(&self, message_hash: &[u8; 32]) -> Signature { + let wrapped = Message::from_digest_slice(message_hash).expect("Message is 32 bytes; qed"); Signature(internal::sign(&self.0.secret_key(), &wrapped)) } } diff --git a/signer/src/eth.rs b/signer/src/eth.rs index 63d23bf384..2096c8a192 100644 --- a/signer/src/eth.rs +++ b/signer/src/eth.rs @@ -106,10 +106,12 @@ impl Keypair { /// Signs an arbitrary message payload. pub fn sign(&self, signer_payload: &[u8]) -> Signature { - let message_hash = keccak(signer_payload); - let wrapped = - Message::from_digest_slice(message_hash.as_bytes()).expect("Message is 32 bytes; qed"); - Signature(ecdsa::internal::sign(&self.0 .0.secret_key(), &wrapped)) + self.sign_prehashed(&keccak(signer_payload).0) + } + + /// Signs a pre-hashed message. + pub fn sign_prehashed(&self, message_hash: &[u8; 32]) -> Signature { + Signature(self.0.sign_prehashed(message_hash).0) } } From 5a0682c1e06fa4468594e7ddb388d01988c278a1 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> Date: Fri, 24 May 2024 11:18:51 +0200 Subject: [PATCH 026/137] Remove `derive_more` (#1600) * replace derive_more's 'From' in signer * replace derive_more's 'From' in core * Remove `derive_more`'s `Display` usages (#1601) * Remove derive_more's 'Display' from core * Remove derive_more's 'Display' from metadata * Remove derive_more's 'Display' from signer * Remove derive_more from dependencies (#1602) closes #1503 * Update signer/src/eth.rs Co-authored-by: Niklas Adolfsson * rename convert_error to impl_from * rename convert_error to impl_from in core --------- Co-authored-by: Niklas Adolfsson --- Cargo.lock | 3 - Cargo.toml | 1 - core/Cargo.toml | 1 - core/src/error.rs | 180 ++++++++++++++++++++++---------- core/src/macros.rs | 10 ++ core/src/utils/account_id.rs | 20 ++-- metadata/Cargo.toml | 1 - metadata/src/from_into/mod.rs | 33 ++++-- signer/Cargo.toml | 1 - signer/src/crypto/secret_uri.rs | 14 ++- signer/src/ecdsa.rs | 24 +++-- signer/src/eth.rs | 17 ++- signer/src/sr25519.rs | 22 ++-- signer/src/utils.rs | 10 ++ 14 files changed, 239 insertions(+), 98 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 589b07377b..ef503c9755 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4855,7 +4855,6 @@ dependencies = [ "bitvec", "blake2", "derive-where", - "derive_more", "frame-metadata 16.0.0", "hashbrown 0.14.5", "hex", @@ -4924,7 +4923,6 @@ dependencies = [ "assert_matches", "bitvec", "criterion", - "derive_more", "frame-metadata 16.0.0", "hashbrown 0.14.5", "parity-scale-codec", @@ -4939,7 +4937,6 @@ dependencies = [ "bip32", "bip39", "cfg-if", - "derive_more", "getrandom", "hex", "hex-literal", diff --git a/Cargo.toml b/Cargo.toml index 865b1e3241..47e054a3e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,6 @@ color-eyre = "0.6.3" console_error_panic_hook = "0.1.7" darling = "0.20.8" derive-where = "1.2.7" -derive_more = "0.99.17" either = { version = "1.11.0", default-features = false } frame-metadata = { version = "16.0.0", default-features = false } futures = { version = "0.3.30", default-features = false, features = ["std"] } diff --git a/core/Cargo.toml b/core/Cargo.toml index e1e08f1fea..7e6019ff61 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -45,7 +45,6 @@ scale-encode = { workspace = true, default-features = false, features = ["derive frame-metadata = { workspace = true, default-features = false } subxt-metadata = { workspace = true, default-features = false } derive-where = { workspace = true } -derive_more = { workspace = true } hex = { workspace = true, default-features = false, features = ["alloc"] } serde = { workspace = true, default-features = false, features = ["derive"] } serde_json = { workspace = true, default-features = false, features = ["raw_value", "alloc"] } diff --git a/core/src/error.rs b/core/src/error.rs index f9f8b0a629..9824c49a84 100644 --- a/core/src/error.rs +++ b/core/src/error.rs @@ -4,134 +4,168 @@ //! The errors that can be emitted in this crate. +use core::fmt::Display; + use alloc::boxed::Box; use alloc::string::String; -use derive_more::{Display, From}; use subxt_metadata::StorageHasher; /// The error emitted when something goes wrong. -#[derive(Debug, Display, From)] +#[derive(Debug)] pub enum Error { /// Codec error. - #[display(fmt = "Scale codec error: {_0}")] Codec(codec::Error), /// Metadata error. - #[display(fmt = "Metadata Error: {_0}")] Metadata(MetadataError), /// Storage address error. - #[display(fmt = "Storage Error: {_0}")] StorageAddress(StorageAddressError), /// Error decoding to a [`crate::dynamic::Value`]. - #[display(fmt = "Error decoding into dynamic value: {_0}")] Decode(scale_decode::Error), /// Error encoding from a [`crate::dynamic::Value`]. - #[display(fmt = "Error encoding from dynamic value: {_0}")] Encode(scale_encode::Error), /// Error constructing the appropriate extrinsic params. - #[display(fmt = "Extrinsic params error: {_0}")] ExtrinsicParams(ExtrinsicParamsError), /// Block body error. - #[display(fmt = "Error working with block body: {_0}")] Block(BlockError), } +impl core::fmt::Display for Error { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + Error::Codec(e) => write!(f, "Scale codec error: {e}"), + Error::Metadata(e) => write!(f, "Metadata Error: {e}"), + Error::StorageAddress(e) => write!(f, "Storage Error: {e}"), + Error::Decode(e) => write!(f, "Error decoding into dynamic value: {e}"), + Error::Encode(e) => write!(f, "Error encoding from dynamic value: {e}"), + Error::ExtrinsicParams(e) => write!(f, "Extrinsic params error: {e}"), + Error::Block(e) => write!(f, "Error working with block_body: {}", e), + } + } +} + #[cfg(feature = "std")] impl std::error::Error for Error {} -impl From for Error { - fn from(value: scale_decode::visitor::DecodeError) -> Self { - Error::Decode(value.into()) - } -} +impl_from!(ExtrinsicParamsError => Error::ExtrinsicParams); +impl_from!(BlockError => Error::Block); +impl_from!(MetadataError => Error::Metadata); +impl_from!(scale_decode::Error => Error::Decode); +impl_from!(scale_decode::visitor::DecodeError => Error::Decode); +impl_from!(scale_encode::Error => Error::Encode); +impl_from!(StorageAddressError => Error::StorageAddress); +impl_from!(codec::Error => Error::Codec); /// Block error -#[derive(Clone, Debug, Display, Eq, PartialEq)] +#[derive(Clone, Debug, Eq, PartialEq)] pub enum BlockError { /// Extrinsic type ID cannot be resolved with the provided metadata. - #[display( - fmt = "Extrinsic type ID cannot be resolved with the provided metadata. Make sure this is a valid metadata" - )] MissingType, /// Unsupported signature. - #[display(fmt = "Unsupported extrinsic version, only version 4 is supported currently")] /// The extrinsic has an unsupported version. UnsupportedVersion(u8), /// Decoding error. - #[display(fmt = "Cannot decode extrinsic: {_0}")] DecodingError(codec::Error), } +impl Display for BlockError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + BlockError::MissingType => write!(f, "Extrinsic type ID cannot be resolved with the provided metadata. Make sure this is a valid metadata"), + BlockError::UnsupportedVersion(_) => write!(f, "Unsupported extrinsic version, only version 4 is supported currently"), + BlockError::DecodingError(e) => write!(f, "Cannot decode extrinsic: {e}"), + } + } +} + #[cfg(feature = "std")] impl std::error::Error for BlockError {} /// Something went wrong trying to access details in the metadata. -#[derive(Clone, Debug, PartialEq, Display)] +#[derive(Clone, Debug, PartialEq)] #[non_exhaustive] pub enum MetadataError { /// The DispatchError type isn't available in the metadata - #[display(fmt = "The DispatchError type isn't available")] DispatchErrorNotFound, /// Type not found in metadata. - #[display(fmt = "Type with ID {_0} not found")] TypeNotFound(u32), /// Pallet not found (index). - #[display(fmt = "Pallet with index {_0} not found")] PalletIndexNotFound(u8), /// Pallet not found (name). - #[display(fmt = "Pallet with name {_0} not found")] PalletNameNotFound(String), /// Variant not found. - #[display(fmt = "Variant with index {_0} not found")] VariantIndexNotFound(u8), /// Constant not found. - #[display(fmt = "Constant with name {_0} not found")] ConstantNameNotFound(String), /// Call not found. - #[display(fmt = "Call with name {_0} not found")] CallNameNotFound(String), /// Runtime trait not found. - #[display(fmt = "Runtime trait with name {_0} not found")] RuntimeTraitNotFound(String), /// Runtime method not found. - #[display(fmt = "Runtime method with name {_0} not found")] RuntimeMethodNotFound(String), /// Call type not found in metadata. - #[display(fmt = "Call type not found in pallet with index {_0}")] CallTypeNotFoundInPallet(u8), /// Event type not found in metadata. - #[display(fmt = "Event type not found in pallet with index {_0}")] EventTypeNotFoundInPallet(u8), /// Storage details not found in metadata. - #[display(fmt = "Storage details not found in pallet with name {_0}")] StorageNotFoundInPallet(String), /// Storage entry not found. - #[display(fmt = "Storage entry {_0} not found")] StorageEntryNotFound(String), /// The generated interface used is not compatible with the node. - #[display(fmt = "The generated code is not compatible with the node")] IncompatibleCodegen, /// Custom value not found. - #[display(fmt = "Custom value with name {_0} not found")] CustomValueNameNotFound(String), } +impl Display for MetadataError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + MetadataError::DispatchErrorNotFound => { + write!(f, "The DispatchError type isn't available") + } + MetadataError::TypeNotFound(e) => write!(f, "Type with ID {e} not found"), + MetadataError::PalletIndexNotFound(e) => write!(f, "Pallet with index {e} not found"), + MetadataError::PalletNameNotFound(e) => write!(f, "Pallet with name {e} not found"), + MetadataError::VariantIndexNotFound(e) => write!(f, "Variant with index {e} not found"), + MetadataError::ConstantNameNotFound(e) => write!(f, "Constant with name {e} not found"), + MetadataError::CallNameNotFound(e) => write!(f, "Call with name {e} not found"), + MetadataError::RuntimeTraitNotFound(e) => { + write!(f, "Runtime trait with name {e} not found") + } + MetadataError::RuntimeMethodNotFound(e) => { + write!(f, "Runtime method with name {e} not found") + } + MetadataError::CallTypeNotFoundInPallet(e) => { + write!(f, "Call type not found in pallet with index {e}") + } + MetadataError::EventTypeNotFoundInPallet(e) => { + write!(f, "Event type not found in pallet with index {e}") + } + MetadataError::StorageNotFoundInPallet(e) => { + write!(f, "Storage details not found in pallet with name {e}") + } + MetadataError::StorageEntryNotFound(e) => write!(f, "Storage entry {e} not found"), + MetadataError::IncompatibleCodegen => { + write!(f, "The generated code is not compatible with the node") + } + MetadataError::CustomValueNameNotFound(e) => { + write!(f, "Custom value with name {e} not found") + } + } + } +} #[cfg(feature = "std")] impl std::error::Error for MetadataError {} /// Something went wrong trying to encode or decode a storage address. -#[derive(Clone, Debug, Display)] +#[derive(Clone, Debug)] #[non_exhaustive] pub enum StorageAddressError { /// Storage lookup does not have the expected number of keys. - #[display(fmt = "Storage lookup requires {expected} keys but more keys have been provided.")] TooManyKeys { /// The number of keys provided in the storage address. expected: usize, }, /// This storage entry in the metadata does not have the correct number of hashers to fields. - #[display( - fmt = "Storage entry in metadata does not have the correct number of hashers to fields" - )] WrongNumberOfHashers { /// The number of hashers in the metadata for this storage entry. hashers: usize, @@ -139,20 +173,12 @@ pub enum StorageAddressError { fields: usize, }, /// We weren't given enough bytes to decode the storage address/key. - #[display(fmt = "Not enough remaining bytes to decode the storage address/key")] NotEnoughBytes, /// We have leftover bytes after decoding the storage address. - #[display(fmt = "We have leftover bytes after decoding the storage address")] TooManyBytes, /// The bytes of a storage address are not the expected address for decoding the storage keys of the address. - #[display( - fmt = "Storage address bytes are not the expected format. Addresses need to be at least 16 bytes (pallet ++ entry) and follow a structure given by the hashers defined in the metadata" - )] UnexpectedAddressBytes, /// An invalid hasher was used to reconstruct a value from a chunk of bytes that is part of a storage address. Hashers where the hash does not contain the original value are invalid for this purpose. - #[display( - fmt = "An invalid hasher was used to reconstruct a value with type ID {ty_id} from a hash formed by a {hasher:?} hasher. This is only possible for concat-style hashers or the identity hasher" - )] HasherCannotReconstructKey { /// Type id of the key's type. ty_id: u32, @@ -161,17 +187,47 @@ pub enum StorageAddressError { }, } +impl Display for StorageAddressError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + StorageAddressError::TooManyKeys { expected } => write!( + f, + "Storage lookup requires {expected} keys but more keys have been provided." + ), + StorageAddressError::WrongNumberOfHashers { .. } => write!( + f, + "Storage entry in metadata does not have the correct number of hashers to fields" + ), + StorageAddressError::NotEnoughBytes => write!( + f, + "Not enough remaining bytes to decode the storage address/key" + ), + StorageAddressError::TooManyBytes => write!( + f, + "We have leftover bytes after decoding the storage address" + ), + StorageAddressError::UnexpectedAddressBytes => write!( + f, + "Storage address bytes are not the expected format. Addresses need to be at least 16 bytes (pallet ++ entry) and follow a structure given by the hashers defined in the metadata" + ), + StorageAddressError::HasherCannotReconstructKey { ty_id, hasher } => write!( + f, + "An invalid hasher was used to reconstruct a value with type ID {ty_id} from a hash formed by a {hasher:?} hasher. This is only possible for concat-style hashers or the identity hasher" + ), + } + } +} + #[cfg(feature = "std")] impl std::error::Error for StorageAddressError {} /// An error that can be emitted when trying to construct an instance of [`crate::config::ExtrinsicParams`], /// encode data from the instance, or match on signed extensions. -#[derive(Display, Debug)] +#[derive(Debug)] #[non_exhaustive] pub enum ExtrinsicParamsError { /// Cannot find a type id in the metadata. The context provides some additional /// information about the source of the error (eg the signed extension name). - #[display(fmt = "Cannot find type id '{type_id} in the metadata (context: {context})")] MissingTypeId { /// Type ID. type_id: u32, @@ -179,15 +235,29 @@ pub enum ExtrinsicParamsError { context: &'static str, }, /// A signed extension in use on some chain was not provided. - #[display( - fmt = "The chain expects a signed extension with the name {_0}, but we did not provide one" - )] UnknownSignedExtension(String), /// Some custom error. - #[display(fmt = "Error constructing extrinsic parameters: {_0}")] Custom(Box), } +impl Display for ExtrinsicParamsError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + ExtrinsicParamsError::MissingTypeId { type_id, context } => write!( + f, + "Cannot find type id '{type_id} in the metadata (context: {context})" + ), + ExtrinsicParamsError::UnknownSignedExtension(e) => write!( + f, + "The chain expects a signed extension with the name {e}, but we did not provide one" + ), + ExtrinsicParamsError::Custom(e) => { + write!(f, "Error constructing extrinsic parameters: {e}") + } + } + } +} + /// Anything implementing this trait can be used in [`ExtrinsicParamsError::Custom`]. #[cfg(feature = "std")] pub trait CustomError: std::error::Error + Send + Sync + 'static {} diff --git a/core/src/macros.rs b/core/src/macros.rs index 8e25742c88..7b0117c959 100644 --- a/core/src/macros.rs +++ b/core/src/macros.rs @@ -18,4 +18,14 @@ macro_rules! cfg_substrate_compat { }; } +macro_rules! impl_from { + ($module_path:path => $delegate_ty:ident :: $variant:ident) => { + impl From<$module_path> for $delegate_ty { + fn from(val: $module_path) -> Self { + $delegate_ty::$variant(val.into()) + } + } + }; +} + pub(crate) use {cfg_feature, cfg_substrate_compat}; diff --git a/core/src/utils/account_id.rs b/core/src/utils/account_id.rs index d5cd65d6b6..008455bd39 100644 --- a/core/src/utils/account_id.rs +++ b/core/src/utils/account_id.rs @@ -6,12 +6,13 @@ //! This doesn't contain much functionality itself, but is easy to convert to/from an `sp_core::AccountId32` //! for instance, to gain functionality without forcing a dependency on Substrate crates here. +use core::fmt::Display; + use alloc::format; use alloc::string::String; use alloc::vec; use alloc::vec::Vec; use codec::{Decode, Encode}; -use derive_more::Display; use serde::{Deserialize, Serialize}; /// A 32-byte cryptographic identifier. This is a simplified version of Substrate's @@ -105,19 +106,26 @@ impl AccountId32 { } /// An error obtained from trying to interpret an SS58 encoded string into an AccountId32 -#[derive(Clone, Copy, Eq, PartialEq, Debug, Display)] +#[derive(Clone, Copy, Eq, PartialEq, Debug)] #[allow(missing_docs)] pub enum FromSs58Error { - #[display(fmt = "Base 58 requirement is violated")] BadBase58, - #[display(fmt = "Length is bad")] BadLength, - #[display(fmt = "Invalid checksum")] InvalidChecksum, - #[display(fmt = "Invalid SS58 prefix byte.")] InvalidPrefix, } +impl Display for FromSs58Error { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + FromSs58Error::BadBase58 => write!(f, "Base 58 requirement is violated"), + FromSs58Error::BadLength => write!(f, "Length is bad"), + FromSs58Error::InvalidChecksum => write!(f, "Invalid checksum"), + FromSs58Error::InvalidPrefix => write!(f, "Invalid SS58 prefix byte."), + } + } +} + #[cfg(feature = "std")] impl std::error::Error for FromSs58Error {} diff --git a/metadata/Cargo.toml b/metadata/Cargo.toml index 1423122ed5..b080adb8b5 100644 --- a/metadata/Cargo.toml +++ b/metadata/Cargo.toml @@ -23,7 +23,6 @@ frame-metadata = { workspace = true, default-features = false, features = ["curr codec = { package = "parity-scale-codec", workspace = true, default-features = false, features = ["derive"] } sp-crypto-hashing = { workspace = true } hashbrown = { workspace = true } -derive_more = { workspace = true } [dev-dependencies] bitvec = { workspace = true, features = ["alloc"] } diff --git a/metadata/src/from_into/mod.rs b/metadata/src/from_into/mod.rs index 1a950e1d5a..13bb2f40c2 100644 --- a/metadata/src/from_into/mod.rs +++ b/metadata/src/from_into/mod.rs @@ -2,34 +2,53 @@ // This file is dual-licensed as Apache-2.0 or GPL-3.0. // see LICENSE for license details. +use core::fmt::Display; + use alloc::string::String; -use derive_more::Display; mod v14; mod v15; /// An error emitted if something goes wrong converting [`frame_metadata`] /// types into [`crate::Metadata`]. -#[derive(Debug, Display, PartialEq, Eq)] +#[derive(Debug, PartialEq, Eq)] #[non_exhaustive] pub enum TryFromError { /// Type missing from type registry - #[display(fmt = "Type id {_0} is expected but not found in the type registry")] TypeNotFound(u32), /// Type was not a variant/enum type - #[display(fmt = "Type {_0} was not a variant/enum type, but is expected to be one")] VariantExpected(u32), /// An unsupported metadata version was provided. - #[display(fmt = "Cannot convert v{_0} metadata into Metadata type")] UnsupportedMetadataVersion(u32), /// Type name missing from type registry - #[display(fmt = "Type name {_0} is expected but not found in the type registry")] TypeNameNotFound(String), /// Invalid type path. - #[display(fmt = "Type has an invalid path {_0}")] InvalidTypePath(String), } +impl Display for TryFromError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + TryFromError::TypeNotFound(e) => write!( + f, + "Type id {e} is expected but not found in the type registry" + ), + TryFromError::VariantExpected(e) => write!( + f, + "Type {e} was not a variant/enum type, but is expected to be one" + ), + TryFromError::UnsupportedMetadataVersion(e) => { + write!(f, "Cannot convert v{e} metadata into Metadata type") + } + TryFromError::TypeNameNotFound(e) => write!( + f, + "Type name {e} is expected but not found in the type registry" + ), + TryFromError::InvalidTypePath(e) => write!(f, "Type has an invalid path {e}"), + } + } +} + #[cfg(feature = "std")] impl std::error::Error for TryFromError {} diff --git a/signer/Cargo.toml b/signer/Cargo.toml index ddd6517d9d..5461fac007 100644 --- a/signer/Cargo.toml +++ b/signer/Cargo.toml @@ -52,7 +52,6 @@ hex = { workspace = true, features = ["alloc"] } cfg-if = { workspace = true } codec = { package = "parity-scale-codec", workspace = true, features = ["derive"] } sp-crypto-hashing = { workspace = true } -derive_more = { workspace = true } pbkdf2 = { workspace = true } sha2 = { workspace = true } hmac = { workspace = true } diff --git a/signer/src/crypto/secret_uri.rs b/signer/src/crypto/secret_uri.rs index 5148311795..dd287d2874 100644 --- a/signer/src/crypto/secret_uri.rs +++ b/signer/src/crypto/secret_uri.rs @@ -2,9 +2,10 @@ // This file is dual-licensed as Apache-2.0 or GPL-3.0. // see LICENSE for license details. +use core::fmt::Display; + use super::DeriveJunction; use alloc::vec::Vec; -use derive_more::Display; use regex::Regex; use secrecy::SecretString; @@ -117,13 +118,20 @@ impl core::str::FromStr for SecretUri { } /// This is returned if `FromStr` cannot parse a string into a `SecretUri`. -#[derive(Debug, Copy, Clone, PartialEq, Display)] +#[derive(Debug, Copy, Clone, PartialEq)] pub enum SecretUriError { /// Parsing the secret URI from a string failed; wrong format. - #[display(fmt = "Invalid secret phrase format")] InvalidFormat, } +impl Display for SecretUriError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + SecretUriError::InvalidFormat => write!(f, "Invalid secret phrase format"), + } + } +} + #[cfg(feature = "std")] impl std::error::Error for SecretUriError {} diff --git a/signer/src/ecdsa.rs b/signer/src/ecdsa.rs index e5b6c4507c..82c4d2f70d 100644 --- a/signer/src/ecdsa.rs +++ b/signer/src/ecdsa.rs @@ -6,8 +6,7 @@ use codec::Encode; use crate::crypto::{seed_from_entropy, DeriveJunction, SecretUri}; -use core::str::FromStr; -use derive_more::{Display, From}; +use core::{fmt::Display, str::FromStr}; use hex::FromHex; use secp256k1::{ecdsa::RecoverableSignature, Message, Secp256k1, SecretKey}; use secrecy::ExposeSecret; @@ -217,23 +216,30 @@ pub(crate) mod internal { } /// An error handed back if creating a keypair fails. -#[derive(Debug, PartialEq, Display, From)] +#[derive(Debug, PartialEq)] pub enum Error { /// Invalid seed. - #[display(fmt = "Invalid seed (was it the wrong length?)")] - #[from(ignore)] InvalidSeed, /// Invalid seed. - #[display(fmt = "Invalid seed for ECDSA, contained soft junction")] - #[from(ignore)] SoftJunction, /// Invalid phrase. - #[display(fmt = "Cannot parse phrase: {_0}")] Phrase(bip39::Error), /// Invalid hex. - #[display(fmt = "Cannot parse hex string: {_0}")] Hex(hex::FromHexError), } +impl Display for Error { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + Error::InvalidSeed => write!(f, "Invalid seed (was it the wrong length?)"), + Error::SoftJunction => write!(f, "Invalid seed for ECDSA, contained soft junction"), + Error::Phrase(e) => write!(f, "Cannot parse phrase: {e}"), + Error::Hex(e) => write!(f, "Cannot parse hex string: {e}"), + } + } +} + +impl_from!(bip39::Error => Error::Phrase); +impl_from!(hex::FromHexError => Error::Hex); #[cfg(feature = "std")] impl std::error::Error for Error {} diff --git a/signer/src/eth.rs b/signer/src/eth.rs index 2096c8a192..0d4d8a6b49 100644 --- a/signer/src/eth.rs +++ b/signer/src/eth.rs @@ -9,7 +9,6 @@ use alloc::format; use alloc::string::String; use core::fmt::{Display, Formatter}; use core::str::FromStr; -use derive_more::Display; use keccak_hash::keccak; use secp256k1::Message; @@ -217,16 +216,26 @@ pub fn verify>(sig: &Signature, message: M, pubkey: &ecdsa::Publi } /// An error handed back if creating a keypair fails. -#[derive(Debug, PartialEq, Display)] +#[derive(Debug, PartialEq)] pub enum Error { /// Invalid seed. - #[display(fmt = "Invalid seed (was it the wrong length?)")] InvalidSeed, /// Invalid derivation path. - #[display(fmt = "Could not derive from path; some valeus in the path may have been >= 2^31?")] DeriveFromPath, } +impl Display for Error { + fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result { + match self { + Error::InvalidSeed => write!(f, "Invalid seed (was it the wrong length?)"), + Error::DeriveFromPath => write!( + f, + "Could not derive from path; some values in the path may have been >= 2^31?" + ), + } + } +} + #[cfg(feature = "std")] impl std::error::Error for Error {} diff --git a/signer/src/sr25519.rs b/signer/src/sr25519.rs index 9848cbdd68..2a9eb84ecd 100644 --- a/signer/src/sr25519.rs +++ b/signer/src/sr25519.rs @@ -4,11 +4,10 @@ //! An sr25519 keypair implementation. -use core::str::FromStr; +use core::{fmt::Display, str::FromStr}; use crate::crypto::{seed_from_entropy, DeriveJunction, SecretUri}; -use derive_more::{Display, From}; use hex::FromHex; use schnorrkel::{ derive::{ChainCode, Derivation}, @@ -192,20 +191,29 @@ pub fn verify>(sig: &Signature, message: M, pubkey: &PublicKey) - } /// An error handed back if creating a keypair fails. -#[derive(Debug, Display, From)] +#[derive(Debug)] pub enum Error { /// Invalid seed. - #[display(fmt = "Invalid seed (was it the wrong length?)")] - #[from(ignore)] InvalidSeed, /// Invalid phrase. - #[display(fmt = "Cannot parse phrase: {_0}")] Phrase(bip39::Error), /// Invalid hex. - #[display(fmt = "Cannot parse hex string: {_0}")] Hex(hex::FromHexError), } +impl_from!(bip39::Error => Error::Phrase); +impl_from!(hex::FromHexError => Error::Hex); + +impl Display for Error { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + Error::InvalidSeed => write!(f, "Invalid seed (was it the wrong length?)"), + Error::Phrase(e) => write!(f, "Cannot parse phrase: {e}"), + Error::Hex(e) => write!(f, "Cannot parse hex string: {e}"), + } + } +} + #[cfg(feature = "std")] impl std::error::Error for Error {} diff --git a/signer/src/utils.rs b/signer/src/utils.rs index e3cea3cfc8..89d261e3b9 100644 --- a/signer/src/utils.rs +++ b/signer/src/utils.rs @@ -34,3 +34,13 @@ macro_rules! once_static_cloned { )+ }; } + +macro_rules! impl_from { + ($module_path:path => $delegate_ty:ident :: $variant:ident) => { + impl From<$module_path> for $delegate_ty { + fn from(val: $module_path) -> Self { + $delegate_ty::$variant(val.into()) + } + } + }; +} From ff5bdeaae1be675e073a468ff03b58869fd8ead2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 09:50:05 +0200 Subject: [PATCH 027/137] build(deps): bump serde from 1.0.202 to 1.0.203 (#1614) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.202 to 1.0.203. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.202...v1.0.203) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ef503c9755..e438513aef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4010,9 +4010,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.202" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "226b61a0d411b2ba5ff6d7f73a476ac4f8bb900373459cd00fab8512828ba395" +checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" dependencies = [ "serde_derive", ] @@ -4028,9 +4028,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.202" +version = "1.0.203" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6048858004bcff69094cd972ed40a32500f153bd3be9f716b2eed2e8217c4838" +checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 47e054a3e4..e7ce8c4e7a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -96,7 +96,7 @@ scale-decode = { version = "0.13.0", default-features = false } scale-encode = { version = "0.7.0", default-features = false } scale-typegen = "0.7.0" scale-typegen-description = "0.7.0" -serde = { version = "1.0.202", default-features = false, features = ["derive"] } +serde = { version = "1.0.203", default-features = false, features = ["derive"] } serde_json = { version = "1.0.117", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.61" From 31752871eecd9da7b0f8bfd20d19e0eb7fe31102 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 09:50:35 +0200 Subject: [PATCH 028/137] build(deps): bump scale-info from 2.11.2 to 2.11.3 (#1613) Bumps [scale-info](https://github.com/paritytech/scale-info) from 2.11.2 to 2.11.3. - [Release notes](https://github.com/paritytech/scale-info/releases) - [Changelog](https://github.com/paritytech/scale-info/blob/master/CHANGELOG.md) - [Commits](https://github.com/paritytech/scale-info/compare/v2.11.2...v2.11.3) --- updated-dependencies: - dependency-name: scale-info dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 10 +++++----- Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e438513aef..b5b200067c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3783,9 +3783,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.11.2" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c453e59a955f81fb62ee5d596b450383d699f152d350e9d23a0db2adb78e4c0" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "bitvec", "cfg-if", @@ -3797,11 +3797,11 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.11.2" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18cf6c6447f813ef19eb450e985bcce6705f9ce7660db221b59093d15c79c4b7" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", diff --git a/Cargo.toml b/Cargo.toml index e7ce8c4e7a..167904fba0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -89,7 +89,7 @@ proc-macro-error = "1.0.4" proc-macro2 = "1.0.82" quote = "1.0.36" regex = { version = "1.10.4", default-features = false } -scale-info = { version = "2.11.0", default-features = false } +scale-info = { version = "2.11.3", default-features = false } scale-value = { version = "0.16.0", default-features = false } scale-bits = { version = "0.6.0", default-features = false } scale-decode = { version = "0.13.0", default-features = false } From 1e8ed231ccee30b1ea83d0288b520dda88b754cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 09:58:27 +0200 Subject: [PATCH 029/137] build(deps): bump zeroize from 1.7.0 to 1.8.1 (#1610) Bumps [zeroize](https://github.com/RustCrypto/utils) from 1.7.0 to 1.8.1. - [Commits](https://github.com/RustCrypto/utils/compare/zeroize-v1.7.0...zeroize-v1.8.1) --- updated-dependencies: - dependency-name: zeroize dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b5b200067c..20f41b5eea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6239,9 +6239,9 @@ dependencies = [ [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] From 0adad5bc390e9a3422cdeb36c1c6e310c09b5edb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 09:58:39 +0200 Subject: [PATCH 030/137] build(deps): bump either from 1.11.0 to 1.12.0 (#1611) Bumps [either](https://github.com/rayon-rs/either) from 1.11.0 to 1.12.0. - [Commits](https://github.com/rayon-rs/either/compare/1.11.0...1.12.0) --- updated-dependencies: - dependency-name: either dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 20f41b5eea..6dbc0727b0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1482,9 +1482,9 @@ dependencies = [ [[package]] name = "either" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2" +checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" [[package]] name = "elliptic-curve" diff --git a/Cargo.toml b/Cargo.toml index 167904fba0..050a7382f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,7 @@ color-eyre = "0.6.3" console_error_panic_hook = "0.1.7" darling = "0.20.8" derive-where = "1.2.7" -either = { version = "1.11.0", default-features = false } +either = { version = "1.12.0", default-features = false } frame-metadata = { version = "16.0.0", default-features = false } futures = { version = "0.3.30", default-features = false, features = ["std"] } getrandom = { version = "0.2", default-features = false } From c76bfc08183991e43517f3a2d634567775b8dc5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 10:18:29 +0200 Subject: [PATCH 031/137] build(deps): bump proc-macro2 from 1.0.82 to 1.0.84 (#1612) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.82 to 1.0.84. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.82...1.0.84) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6dbc0727b0..71b099e031 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3273,9 +3273,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.82" +version = "1.0.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b" +checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" dependencies = [ "unicode-ident", ] diff --git a/Cargo.toml b/Cargo.toml index 050a7382f0..259a338524 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -86,7 +86,7 @@ jsonrpsee = { version = "0.22" } pretty_assertions = "1.4.0" primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" -proc-macro2 = "1.0.82" +proc-macro2 = "1.0.84" quote = "1.0.36" regex = { version = "1.10.4", default-features = false } scale-info = { version = "2.11.3", default-features = false } From d2f0e5e0e05b12f0bc91099d856874ffe825398f Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Mon, 27 May 2024 10:37:03 +0200 Subject: [PATCH 032/137] chore(deps): bump scale-typegen v0.8.0 (#1615) --- Cargo.lock | 9 ++++----- Cargo.toml | 4 ++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 71b099e031..b72b6c693c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3819,23 +3819,22 @@ dependencies = [ [[package]] name = "scale-typegen" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9abba3c40137e1244c0f29ed648199bc8ec32569ee349673828e7a060c8e0298" +checksum = "498d1aecf2ea61325d4511787c115791639c0fd21ef4f8e11e49dd09eff2bbac" dependencies = [ "proc-macro2", "quote", "scale-info", - "smallvec", "syn 2.0.60", "thiserror", ] [[package]] name = "scale-typegen-description" -version = "0.7.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bdb6368c3f096fecb2ec6ca9798c0cc3b13842fd39c1e3d5f74e1bfac3de6c0" +checksum = "1ff4cabffc407f6378bc7a164fab8280bfcd862b2dd063cc5c9914a520ea8566" dependencies = [ "anyhow", "peekmore", diff --git a/Cargo.toml b/Cargo.toml index 259a338524..8310f62b53 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -94,8 +94,8 @@ scale-value = { version = "0.16.0", default-features = false } scale-bits = { version = "0.6.0", default-features = false } scale-decode = { version = "0.13.0", default-features = false } scale-encode = { version = "0.7.0", default-features = false } -scale-typegen = "0.7.0" -scale-typegen-description = "0.7.0" +scale-typegen = "0.8.0" +scale-typegen-description = "0.8.0" serde = { version = "1.0.203", default-features = false, features = ["derive"] } serde_json = { version = "1.0.117", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } From e8a9232ef446dc1e9d56b6a6de526a6e4bd5d0b0 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Mon, 27 May 2024 12:44:07 +0200 Subject: [PATCH 033/137] chore: release v0.36.1 (#1616) --- CHANGELOG.md | 14 ++++++++++++++ Cargo.lock | 30 +++++++++++++++--------------- Cargo.toml | 16 ++++++++-------- 3 files changed, 37 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 872ac6ccb6..cd5132634d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,20 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.36.1] - 2024-05-27 + +This release mainly adds support for the sign extension `CheckMetadataHash` and fixes a regression introduced in v0.36.0 +where the type de-duplication was too aggressive and lots of the same type such as `BoundedVec` was duplicated to +plenty of different types such as BoundedVec1, BoundedVec2, .. BoundedVec. + +### Added +- Implemented `sign_prehashed` for `ecdsa::Keypair` and `eth::Keypair` ([#1598](https://github.com/paritytech/subxt/pull/1598)) +- Add a basic version of the CheckMetadataHash signed extension ([#1590](https://github.com/paritytech/subxt/pull/1590)) + +## Changed +- Remove `derive_more` ([#1600](https://github.com/paritytech/subxt/pull/1600)) +- chore(deps): bump scale-typegen v0.8.0 ([#1615](https://github.com/paritytech/subxt/pull/1615)) + ## [0.36.0] - 2024-05-16 This release adds a few new features, which I'll go over below in more detail. diff --git a/Cargo.lock b/Cargo.lock index b72b6c693c..d7510c044e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -327,7 +327,7 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "artifacts" -version = "0.36.0" +version = "0.36.1" dependencies = [ "substrate-runner", ] @@ -1812,7 +1812,7 @@ dependencies = [ [[package]] name = "generate-custom-metadata" -version = "0.36.0" +version = "0.36.1" dependencies = [ "frame-metadata 16.0.0", "parity-scale-codec", @@ -2309,7 +2309,7 @@ dependencies = [ [[package]] name = "integration-tests" -version = "0.36.0" +version = "0.36.1" dependencies = [ "assert_matches", "cfg_aliases", @@ -4745,7 +4745,7 @@ dependencies = [ [[package]] name = "substrate-runner" -version = "0.36.0" +version = "0.36.1" [[package]] name = "subtle" @@ -4755,7 +4755,7 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "subxt" -version = "0.36.0" +version = "0.36.1" dependencies = [ "assert_matches", "async-trait", @@ -4798,7 +4798,7 @@ dependencies = [ [[package]] name = "subxt-cli" -version = "0.36.0" +version = "0.36.1" dependencies = [ "clap 4.5.4", "color-eyre", @@ -4827,7 +4827,7 @@ dependencies = [ [[package]] name = "subxt-codegen" -version = "0.36.0" +version = "0.36.1" dependencies = [ "frame-metadata 16.0.0", "getrandom", @@ -4847,7 +4847,7 @@ dependencies = [ [[package]] name = "subxt-core" -version = "0.36.0" +version = "0.36.1" dependencies = [ "assert_matches", "base58", @@ -4879,7 +4879,7 @@ dependencies = [ [[package]] name = "subxt-lightclient" -version = "0.36.0" +version = "0.36.1" dependencies = [ "futures", "futures-timer", @@ -4904,7 +4904,7 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.36.0" +version = "0.36.1" dependencies = [ "darling 0.20.8", "parity-scale-codec", @@ -4917,7 +4917,7 @@ dependencies = [ [[package]] name = "subxt-metadata" -version = "0.36.0" +version = "0.36.1" dependencies = [ "assert_matches", "bitvec", @@ -4931,7 +4931,7 @@ dependencies = [ [[package]] name = "subxt-signer" -version = "0.36.0" +version = "0.36.1" dependencies = [ "bip32", "bip39", @@ -4958,7 +4958,7 @@ dependencies = [ [[package]] name = "subxt-test-macro" -version = "0.36.0" +version = "0.36.1" dependencies = [ "quote", "syn 2.0.60", @@ -5021,7 +5021,7 @@ dependencies = [ [[package]] name = "test-runtime" -version = "0.36.0" +version = "0.36.1" dependencies = [ "hex", "impl-serde", @@ -5446,7 +5446,7 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ui-tests" -version = "0.36.0" +version = "0.36.1" dependencies = [ "frame-metadata 16.0.0", "generate-custom-metadata", diff --git a/Cargo.toml b/Cargo.toml index 8310f62b53..70f55626a3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ resolver = "2" [workspace.package] authors = ["Parity Technologies "] edition = "2021" -version = "0.36.0" +version = "0.36.1" rust-version = "1.74.0" license = "Apache-2.0 OR GPL-3.0" repository = "https://github.com/paritytech/subxt" @@ -138,13 +138,13 @@ sp-runtime = "34.0.0" sp-keyring = "34.0.0" # Subxt workspace crates: -subxt = { version = "0.36.0", path = "subxt", default-features = false } -subxt-core = { version = "0.36.0", path = "core", default-features = false } -subxt-macro = { version = "0.36.0", path = "macro" } -subxt-metadata = { version = "0.36.0", path = "metadata", default-features = false } -subxt-codegen = { version = "0.36.0", path = "codegen" } -subxt-signer = { version = "0.36.0", path = "signer", default-features = false } -subxt-lightclient = { version = "0.36.0", path = "lightclient", default-features = false } +subxt = { version = "0.36.1", path = "subxt", default-features = false } +subxt-core = { version = "0.36.1", path = "core", default-features = false } +subxt-macro = { version = "0.36.1", path = "macro" } +subxt-metadata = { version = "0.36.1", path = "metadata", default-features = false } +subxt-codegen = { version = "0.36.1", path = "codegen" } +subxt-signer = { version = "0.36.1", path = "signer", default-features = false } +subxt-lightclient = { version = "0.36.1", path = "lightclient", default-features = false } test-runtime = { path = "testing/test-runtime" } substrate-runner = { path = "testing/substrate-runner" } From 52fce46e899ff33f0cc822ae26368d14ae822c63 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Mon, 27 May 2024 15:13:59 +0200 Subject: [PATCH 034/137] chore(deps): remove unused `sp-core` from signer (#1617) --- signer/Cargo.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/signer/Cargo.toml b/signer/Cargo.toml index 5461fac007..b4ce0e5df4 100644 --- a/signer/Cargo.toml +++ b/signer/Cargo.toml @@ -25,7 +25,6 @@ std = [ "bip39/std", "schnorrkel/std", "secp256k1/std", - "sp-core/std" ] # Pick the signer implementation(s) you need by enabling the From 44517aabfc59d21d9495ca2b49694370f02d6664 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Tue, 28 May 2024 12:33:46 +0200 Subject: [PATCH 035/137] chore: release v0.37.0 (#1619) --- CHANGELOG.md | 6 +++++- Cargo.toml | 16 ++++++++-------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index cd5132634d..a32260734c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.36.1] - 2024-05-27 +## [0.37.0] - 2024-05-28 This release mainly adds support for the sign extension `CheckMetadataHash` and fixes a regression introduced in v0.36.0 where the type de-duplication was too aggressive and lots of the same type such as `BoundedVec` was duplicated to @@ -18,6 +18,10 @@ plenty of different types such as BoundedVec1, BoundedVec2, .. BoundedVec. - Remove `derive_more` ([#1600](https://github.com/paritytech/subxt/pull/1600)) - chore(deps): bump scale-typegen v0.8.0 ([#1615](https://github.com/paritytech/subxt/pull/1615)) +## [0.36.1] - 2024-05-28 [YANKED] + +Yanked because the typegen changed, it's a breaking change. + ## [0.36.0] - 2024-05-16 This release adds a few new features, which I'll go over below in more detail. diff --git a/Cargo.toml b/Cargo.toml index 70f55626a3..6cb9410ddc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -33,7 +33,7 @@ resolver = "2" [workspace.package] authors = ["Parity Technologies "] edition = "2021" -version = "0.36.1" +version = "0.37.0" rust-version = "1.74.0" license = "Apache-2.0 OR GPL-3.0" repository = "https://github.com/paritytech/subxt" @@ -138,13 +138,13 @@ sp-runtime = "34.0.0" sp-keyring = "34.0.0" # Subxt workspace crates: -subxt = { version = "0.36.1", path = "subxt", default-features = false } -subxt-core = { version = "0.36.1", path = "core", default-features = false } -subxt-macro = { version = "0.36.1", path = "macro" } -subxt-metadata = { version = "0.36.1", path = "metadata", default-features = false } -subxt-codegen = { version = "0.36.1", path = "codegen" } -subxt-signer = { version = "0.36.1", path = "signer", default-features = false } -subxt-lightclient = { version = "0.36.1", path = "lightclient", default-features = false } +subxt = { version = "0.37.0", path = "subxt", default-features = false } +subxt-core = { version = "0.37.0", path = "core", default-features = false } +subxt-macro = { version = "0.37.0", path = "macro" } +subxt-metadata = { version = "0.37.0", path = "metadata", default-features = false } +subxt-codegen = { version = "0.37.0", path = "codegen" } +subxt-signer = { version = "0.37.0", path = "signer", default-features = false } +subxt-lightclient = { version = "0.37.0", path = "lightclient", default-features = false } test-runtime = { path = "testing/test-runtime" } substrate-runner = { path = "testing/substrate-runner" } From 91c219c934b84d35c65f7823f35110f9d8c26c7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 10:38:48 +0200 Subject: [PATCH 036/137] build(deps): bump darling from 0.20.8 to 0.20.9 (#1623) Bumps [darling](https://github.com/TedDriggs/darling) from 0.20.8 to 0.20.9. - [Release notes](https://github.com/TedDriggs/darling/releases) - [Changelog](https://github.com/TedDriggs/darling/blob/master/CHANGELOG.md) - [Commits](https://github.com/TedDriggs/darling/commits) --- updated-dependencies: - dependency-name: darling dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 52 ++++++++++++++++++++++++++-------------------------- Cargo.toml | 2 +- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d7510c044e..3b999e1249 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -327,7 +327,7 @@ checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" [[package]] name = "artifacts" -version = "0.36.1" +version = "0.37.0" dependencies = [ "substrate-runner", ] @@ -1211,12 +1211,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" +checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" dependencies = [ - "darling_core 0.20.8", - "darling_macro 0.20.8", + "darling_core 0.20.9", + "darling_macro 0.20.9", ] [[package]] @@ -1235,15 +1235,15 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" +checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim 0.10.0", + "strsim 0.11.1", "syn 2.0.60", ] @@ -1260,11 +1260,11 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.8" +version = "0.20.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" +checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" dependencies = [ - "darling_core 0.20.8", + "darling_core 0.20.9", "quote", "syn 2.0.60", ] @@ -1812,7 +1812,7 @@ dependencies = [ [[package]] name = "generate-custom-metadata" -version = "0.36.1" +version = "0.37.0" dependencies = [ "frame-metadata 16.0.0", "parity-scale-codec", @@ -2309,7 +2309,7 @@ dependencies = [ [[package]] name = "integration-tests" -version = "0.36.1" +version = "0.37.0" dependencies = [ "assert_matches", "cfg_aliases", @@ -4745,7 +4745,7 @@ dependencies = [ [[package]] name = "substrate-runner" -version = "0.36.1" +version = "0.37.0" [[package]] name = "subtle" @@ -4755,7 +4755,7 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "subxt" -version = "0.36.1" +version = "0.37.0" dependencies = [ "assert_matches", "async-trait", @@ -4798,7 +4798,7 @@ dependencies = [ [[package]] name = "subxt-cli" -version = "0.36.1" +version = "0.37.0" dependencies = [ "clap 4.5.4", "color-eyre", @@ -4827,7 +4827,7 @@ dependencies = [ [[package]] name = "subxt-codegen" -version = "0.36.1" +version = "0.37.0" dependencies = [ "frame-metadata 16.0.0", "getrandom", @@ -4847,7 +4847,7 @@ dependencies = [ [[package]] name = "subxt-core" -version = "0.36.1" +version = "0.37.0" dependencies = [ "assert_matches", "base58", @@ -4879,7 +4879,7 @@ dependencies = [ [[package]] name = "subxt-lightclient" -version = "0.36.1" +version = "0.37.0" dependencies = [ "futures", "futures-timer", @@ -4904,9 +4904,9 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.36.1" +version = "0.37.0" dependencies = [ - "darling 0.20.8", + "darling 0.20.9", "parity-scale-codec", "proc-macro-error", "quote", @@ -4917,7 +4917,7 @@ dependencies = [ [[package]] name = "subxt-metadata" -version = "0.36.1" +version = "0.37.0" dependencies = [ "assert_matches", "bitvec", @@ -4931,7 +4931,7 @@ dependencies = [ [[package]] name = "subxt-signer" -version = "0.36.1" +version = "0.37.0" dependencies = [ "bip32", "bip39", @@ -4958,7 +4958,7 @@ dependencies = [ [[package]] name = "subxt-test-macro" -version = "0.36.1" +version = "0.37.0" dependencies = [ "quote", "syn 2.0.60", @@ -5021,7 +5021,7 @@ dependencies = [ [[package]] name = "test-runtime" -version = "0.36.1" +version = "0.37.0" dependencies = [ "hex", "impl-serde", @@ -5446,7 +5446,7 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ui-tests" -version = "0.36.1" +version = "0.37.0" dependencies = [ "frame-metadata 16.0.0", "generate-custom-metadata", diff --git a/Cargo.toml b/Cargo.toml index 6cb9410ddc..fc868410e7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -71,7 +71,7 @@ criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } color-eyre = "0.6.3" console_error_panic_hook = "0.1.7" -darling = "0.20.8" +darling = "0.20.9" derive-where = "1.2.7" either = { version = "1.12.0", default-features = false } frame-metadata = { version = "16.0.0", default-features = false } From 34567484f201cec65e68c64e3d35eeecda4b6625 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 10:40:02 +0200 Subject: [PATCH 037/137] build(deps): bump subxt-codegen from 0.36.1 to 0.37.0 (#1627) Bumps [subxt-codegen](https://github.com/paritytech/subxt) from 0.36.1 to 0.37.0. - [Release notes](https://github.com/paritytech/subxt/releases) - [Changelog](https://github.com/paritytech/subxt/blob/master/CHANGELOG.md) - [Commits](https://github.com/paritytech/subxt/compare/v0.36.1...v0.37.0) --- updated-dependencies: - dependency-name: subxt-codegen dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> From 6e51b683974664c876bbd72882b863a7355b4b24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 10:40:54 +0200 Subject: [PATCH 038/137] build(deps): bump scale-encode from 0.7.0 to 0.7.1 (#1626) Bumps [scale-encode](https://github.com/paritytech/scale-encode) from 0.7.0 to 0.7.1. - [Release notes](https://github.com/paritytech/scale-encode/releases) - [Changelog](https://github.com/paritytech/scale-encode/blob/main/CHANGELOG.md) - [Commits](https://github.com/paritytech/scale-encode/compare/v0.7.0...v0.7.1) --- updated-dependencies: - dependency-name: scale-encode dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3b999e1249..5f14a521db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3755,9 +3755,9 @@ dependencies = [ [[package]] name = "scale-encode" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac89c68dd1142f71a5b97850b9031e9a0d3ce708f5de5e7234cddb3b6fc7c8db" +checksum = "4ba0b9c48dc0eb20c60b083c29447c0c4617cb7c4a4c9fef72aa5c5bc539e15e" dependencies = [ "derive_more", "parity-scale-codec", @@ -3770,9 +3770,9 @@ dependencies = [ [[package]] name = "scale-encode-derive" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a4ad472c7c16e4091a08f2f9901a1c117ee865a535b3bfb019e8e53de84ddce" +checksum = "82ab7e60e2d9c8d47105f44527b26f04418e5e624ffc034f6b4a86c0ba19c5bf" dependencies = [ "darling 0.14.4", "proc-macro-crate 1.3.1", diff --git a/Cargo.toml b/Cargo.toml index fc868410e7..4fb8d1cff9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -93,7 +93,7 @@ scale-info = { version = "2.11.3", default-features = false } scale-value = { version = "0.16.0", default-features = false } scale-bits = { version = "0.6.0", default-features = false } scale-decode = { version = "0.13.0", default-features = false } -scale-encode = { version = "0.7.0", default-features = false } +scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" serde = { version = "1.0.203", default-features = false, features = ["derive"] } From 6196d26cede282b13ea35a8d20483c0818d88175 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> Date: Wed, 5 Jun 2024 17:45:09 +0200 Subject: [PATCH 039/137] Codegen: add #[codec(dumb_trait_bound)] (#1630) closes #1603 --- codegen/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/codegen/src/lib.rs b/codegen/src/lib.rs index a981557e8b..728926262b 100644 --- a/codegen/src/lib.rs +++ b/codegen/src/lib.rs @@ -342,10 +342,11 @@ fn default_derives(crate_path: &syn::Path) -> DerivesRegistry { parse_quote!(Debug), ]; - let attributes: [syn::Attribute; 3] = [ + let attributes: [syn::Attribute; 4] = [ parse_quote!(#[encode_as_type(crate_path = #encode_crate_path)]), parse_quote!(#[decode_as_type(crate_path = #decode_crate_path)]), parse_quote!(#[codec(crate = #crate_path::ext::codec)]), + parse_quote!(#[codec(dumb_trait_bound)]), ]; let mut derives_registry = DerivesRegistry::new(); From 91fbfa1cfc135c580a23f1376e4e2e31b04ba653 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:08:15 +0300 Subject: [PATCH 040/137] build(deps): bump regex from 1.10.4 to 1.10.5 (#1633) Bumps [regex](https://github.com/rust-lang/regex) from 1.10.4 to 1.10.5. - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.10.4...1.10.5) --- updated-dependencies: - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5f14a521db..c4ff528485 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3443,9 +3443,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.4" +version = "1.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c" +checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" dependencies = [ "aho-corasick", "memchr", diff --git a/Cargo.toml b/Cargo.toml index 4fb8d1cff9..0764a68f14 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -88,7 +88,7 @@ primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" proc-macro2 = "1.0.84" quote = "1.0.36" -regex = { version = "1.10.4", default-features = false } +regex = { version = "1.10.5", default-features = false } scale-info = { version = "2.11.3", default-features = false } scale-value = { version = "0.16.0", default-features = false } scale-bits = { version = "0.6.0", default-features = false } From 20162ab5da3f06cdf2b561c2c8de956bc626f30f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:08:25 +0300 Subject: [PATCH 041/137] build(deps): bump tokio from 1.37.0 to 1.38.0 (#1634) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.37.0 to 1.38.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.37.0...tokio-1.38.0) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c4ff528485..21d422b393 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5107,9 +5107,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.37.0" +version = "1.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787" +checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" dependencies = [ "backtrace", "bytes", @@ -5124,9 +5124,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 0764a68f14..c9c7fcb8c7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,7 @@ serde = { version = "1.0.203", default-features = false, features = ["derive"] } serde_json = { version = "1.0.117", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.61" -tokio = { version = "1.37", default-features = false } +tokio = { version = "1.38", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" From 20b317b2ab29fee1cd1e5597edb7c58dcf16a503 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:08:39 +0300 Subject: [PATCH 042/137] build(deps): bump proc-macro2 from 1.0.84 to 1.0.85 (#1635) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.84 to 1.0.85. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.84...1.0.85) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 21d422b393..0003d31974 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3273,9 +3273,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.84" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec96c6a92621310b51366f1e28d05ef11489516e93be030060e5fc12024a49d6" +checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" dependencies = [ "unicode-ident", ] diff --git a/Cargo.toml b/Cargo.toml index c9c7fcb8c7..5b77049360 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -86,7 +86,7 @@ jsonrpsee = { version = "0.22" } pretty_assertions = "1.4.0" primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" -proc-macro2 = "1.0.84" +proc-macro2 = "1.0.85" quote = "1.0.36" regex = { version = "1.10.5", default-features = false } scale-info = { version = "2.11.3", default-features = false } From 463211e55134545f3b916e9eaedc899c09ba4b7e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:08:56 +0300 Subject: [PATCH 043/137] build(deps): bump scale-decode from 0.13.0 to 0.13.1 (#1636) Bumps [scale-decode](https://github.com/paritytech/scale-decode) from 0.13.0 to 0.13.1. - [Release notes](https://github.com/paritytech/scale-decode/releases) - [Changelog](https://github.com/paritytech/scale-decode/blob/main/CHANGELOG.md) - [Commits](https://github.com/paritytech/scale-decode/commits) --- updated-dependencies: - dependency-name: scale-decode dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0003d31974..8d73268abb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3728,9 +3728,9 @@ dependencies = [ [[package]] name = "scale-decode" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b12ebca36cec2a3f983c46295b282b35e5f8496346fb859a8776dad5389e5389" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ "derive_more", "parity-scale-codec", @@ -3743,9 +3743,9 @@ dependencies = [ [[package]] name = "scale-decode-derive" -version = "0.13.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06a387a62a2be6ec532eb4f9e1fc800f26d462c06b335d9c3ee54559a355b9fb" +checksum = "9bb22f574168103cdd3133b19281639ca65ad985e24612728f727339dcaf4021" dependencies = [ "darling 0.14.4", "proc-macro2", diff --git a/Cargo.toml b/Cargo.toml index 5b77049360..5bb1399e0b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -92,7 +92,7 @@ regex = { version = "1.10.5", default-features = false } scale-info = { version = "2.11.3", default-features = false } scale-value = { version = "0.16.0", default-features = false } scale-bits = { version = "0.6.0", default-features = false } -scale-decode = { version = "0.13.0", default-features = false } +scale-decode = { version = "0.13.1", default-features = false } scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" From ddbffe828f285e9d3a5fd728c2c379bfba614b0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 11:09:14 +0300 Subject: [PATCH 044/137] build(deps): bump clap from 4.5.4 to 4.5.6 (#1637) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.4 to 4.5.6. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.4...v4.5.6) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8d73268abb..e8318aa113 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -863,9 +863,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.4" +version = "4.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0" +checksum = "a9689a29b593160de5bc4aacab7b5d54fb52231de70122626c178e6a368994c7" dependencies = [ "clap_builder", "clap_derive", @@ -873,9 +873,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.2" +version = "4.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4" +checksum = "2e5387378c84f6faa26890ebf9f0a92989f8873d4d380467bcd0d8d8620424df" dependencies = [ "anstream", "anstyle", @@ -885,9 +885,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.4" +version = "4.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64" +checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -4800,7 +4800,7 @@ dependencies = [ name = "subxt-cli" version = "0.37.0" dependencies = [ - "clap 4.5.4", + "clap 4.5.6", "color-eyre", "frame-metadata 16.0.0", "heck 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index 5bb1399e0b..b824bd9739 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -65,7 +65,7 @@ assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } blake2 = { version = "0.10.6", default-features = false } -clap = { version = "4.5.3", features = ["derive", "cargo"] } +clap = { version = "4.5.6", features = ["derive", "cargo"] } cfg-if = "1.0.0" criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } From 971c15cf3beb917b9aed050f71700a1a6b513eb3 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> Date: Tue, 18 Jun 2024 18:45:40 +0200 Subject: [PATCH 045/137] Disable `clippy::unwrap_or_default` lint for the project (#1647) * disable clippy lint trigerred by a macro * typo in lint name * Update macro/src/lib.rs Co-authored-by: Niklas Adolfsson * move missing docs * add workspace.lints = true for remaining crates * lint fixes * Update signer/src/eth.rs Co-authored-by: James Wilson --------- Co-authored-by: Niklas Adolfsson Co-authored-by: James Wilson --- Cargo.toml | 2 ++ codegen/Cargo.toml | 3 +++ core/Cargo.toml | 4 +++- macro/Cargo.toml | 3 +++ macro/src/lib.rs | 5 +++-- metadata/Cargo.toml | 3 +++ metadata/benches/bench.rs | 3 ++- signer/Cargo.toml | 3 +++ signer/src/eth.rs | 12 ++++++++++++ signer/src/utils.rs | 1 + 10 files changed, 35 insertions(+), 4 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index b824bd9739..225b532c61 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -58,6 +58,8 @@ unused_extern_crates = "deny" [workspace.lints.clippy] type_complexity = "allow" all = "deny" +# https://github.com/rust-lang/rust-clippy/issues/12643 +manual-unwrap-or-default = "allow" [workspace.dependencies] async-trait = "0.1.80" diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml index 5ffde7e92f..cc122419e6 100644 --- a/codegen/Cargo.toml +++ b/codegen/Cargo.toml @@ -43,3 +43,6 @@ rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] defalt-features = true + +[lints] +workspace = true \ No newline at end of file diff --git a/core/Cargo.toml b/core/Cargo.toml index 7e6019ff61..cc77f943ea 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -35,7 +35,6 @@ std = [ substrate-compat = ["sp-core", "sp-runtime"] [dependencies] - codec = { package = "parity-scale-codec", workspace = true, default-features = false, features = ["derive"] } scale-info = { workspace = true, default-features = false, features = ["bit-vec"] } scale-value = { workspace = true, default-features = false } @@ -83,3 +82,6 @@ rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] defalt-features = true + +[lints] +workspace = true \ No newline at end of file diff --git a/macro/Cargo.toml b/macro/Cargo.toml index 24263aab29..90fb392591 100644 --- a/macro/Cargo.toml +++ b/macro/Cargo.toml @@ -27,3 +27,6 @@ syn = { workspace = true } quote = { workspace = true } subxt-codegen = { workspace = true, features = ["fetch-metadata"] } scale-typegen = { workspace = true } + +[lints] +workspace = true \ No newline at end of file diff --git a/macro/src/lib.rs b/macro/src/lib.rs index 6b72667e7e..288ac6162b 100644 --- a/macro/src/lib.rs +++ b/macro/src/lib.rs @@ -3,8 +3,8 @@ // see LICENSE for license details. //! Subxt macro for generating Substrate runtime interfaces. - -extern crate proc_macro; +// TODO: The workspace lint is not working properly so it's disabled here for now. +#![allow(clippy::manual_unwrap_or_default)] use codec::Decode; use darling::{ast::NestedMeta, FromMeta}; @@ -85,6 +85,7 @@ struct SubstituteType { } // Note: docs for this are in the subxt library; don't add further docs here as they will be appended. +#[allow(missing_docs)] #[proc_macro_attribute] #[proc_macro_error] pub fn subxt(args: TokenStream, input: TokenStream) -> TokenStream { diff --git a/metadata/Cargo.toml b/metadata/Cargo.toml index b080adb8b5..0ad5316100 100644 --- a/metadata/Cargo.toml +++ b/metadata/Cargo.toml @@ -37,3 +37,6 @@ bench = false [[bench]] name = "bench" harness = false + +[lints] +workspace = true \ No newline at end of file diff --git a/metadata/benches/bench.rs b/metadata/benches/bench.rs index c19e0adaae..f3d9439ae6 100644 --- a/metadata/benches/bench.rs +++ b/metadata/benches/bench.rs @@ -3,7 +3,7 @@ // see LICENSE for license details. //! Benchmarks for metadata hashing. - +#![allow(missing_docs)] use codec::Decode; use criterion::*; use frame_metadata::{RuntimeMetadata, RuntimeMetadataPrefixed}; @@ -92,4 +92,5 @@ criterion_group!( bench_get_constant_hash, bench_get_storage_hash, ); + criterion_main!(benches); diff --git a/signer/Cargo.toml b/signer/Cargo.toml index b4ce0e5df4..d83c5f31f7 100644 --- a/signer/Cargo.toml +++ b/signer/Cargo.toml @@ -79,3 +79,6 @@ rustdoc-args = ["--cfg", "docsrs"] [package.metadata.playground] defalt-features = true + +[lints] +workspace = true \ No newline at end of file diff --git a/signer/src/eth.rs b/signer/src/eth.rs index 0d4d8a6b49..3a82580a4c 100644 --- a/signer/src/eth.rs +++ b/signer/src/eth.rs @@ -207,6 +207,18 @@ impl Display for AccountId20 { } } +/// Verify that some signature for a message was created by the owner of the [`PublicKey`]. +/// +/// ```rust +/// use subxt_signer::{ bip39::Mnemonic, eth }; +/// +/// let keypair = eth::dev::alith(); +/// let message = b"Hello!"; +/// +/// let signature = keypair.sign(message); +/// let public_key = keypair.public_key(); +/// assert!(eth::verify(&signature, message, &public_key)); +/// ``` pub fn verify>(sig: &Signature, message: M, pubkey: &ecdsa::PublicKey) -> bool { let message_hash = keccak(message.as_ref()); let wrapped = diff --git a/signer/src/utils.rs b/signer/src/utils.rs index 89d261e3b9..72b6e14fa7 100644 --- a/signer/src/utils.rs +++ b/signer/src/utils.rs @@ -21,6 +21,7 @@ macro_rules! once_static_cloned { ($($(#[$attr:meta])* $vis:vis fn $name:ident() -> $ty:ty { $expr:expr } )+) => { $( $(#[$attr])* + #[allow(missing_docs)] $vis fn $name() -> $ty { cfg_if::cfg_if! { if #[cfg(feature = "std")] { From 633099509c06ce85c9b6a8e8a51283099042bbaa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 08:19:51 +0200 Subject: [PATCH 046/137] build(deps): bump url from 2.5.0 to 2.5.1 (#1644) Bumps [url](https://github.com/servo/rust-url) from 2.5.0 to 2.5.1. - [Release notes](https://github.com/servo/rust-url/releases) - [Commits](https://github.com/servo/rust-url/compare/v2.5.0...v2.5.1) --- updated-dependencies: - dependency-name: url dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 267 ++++++++++++++++++++++++++++++++++++++++++++++++++--- Cargo.toml | 2 +- 2 files changed, 256 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e8318aa113..2bb7c30a19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1352,6 +1352,17 @@ dependencies = [ "subtle", ] +[[package]] +name = "displaydoc" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "docify" version = "0.2.8" @@ -2193,6 +2204,124 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locid" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_locid_transform" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_locid_transform_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_locid_transform_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" + +[[package]] +name = "icu_normalizer" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "utf16_iter", + "utf8_iter", + "write16", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" + +[[package]] +name = "icu_properties" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locid_transform", + "icu_properties_data", + "icu_provider", + "tinystr", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" + +[[package]] +name = "icu_provider" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" +dependencies = [ + "displaydoc", + "icu_locid", + "icu_provider_macros", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_provider_macros" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "ident_case" version = "1.0.1" @@ -2201,12 +2330,14 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "0.5.0" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" dependencies = [ - "unicode-bidi", - "unicode-normalization", + "icu_normalizer", + "icu_properties", + "smallvec", + "utf8_iter", ] [[package]] @@ -2608,6 +2739,12 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" +[[package]] +name = "litemap" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" + [[package]] name = "lock_api" version = "0.4.12" @@ -4986,6 +5123,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "synstructure" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "tap" version = "1.0.1" @@ -5080,6 +5228,16 @@ dependencies = [ "crunchy", ] +[[package]] +name = "tinystr" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" +dependencies = [ + "displaydoc", + "zerovec", +] + [[package]] name = "tinytemplate" version = "1.2.1" @@ -5476,12 +5634,6 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" -[[package]] -name = "unicode-bidi" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" - [[package]] name = "unicode-ident" version = "1.0.12" @@ -5521,15 +5673,27 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] +[[package]] +name = "utf16_iter" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.1" @@ -6183,6 +6347,18 @@ dependencies = [ "memchr", ] +[[package]] +name = "write16" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" + +[[package]] +name = "writeable" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" + [[package]] name = "wyz" version = "0.5.1" @@ -6216,6 +6392,30 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff4524214bc4629eba08d78ceb1d6507070cc0bcbbed23af74e19e6e924a24cf" +[[package]] +name = "yoke" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.32" @@ -6236,6 +6436,27 @@ dependencies = [ "syn 2.0.60", ] +[[package]] +name = "zerofrom" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", + "synstructure", +] + [[package]] name = "zeroize" version = "1.8.1" @@ -6255,3 +6476,25 @@ dependencies = [ "quote", "syn 2.0.60", ] + +[[package]] +name = "zerovec" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.60", +] diff --git a/Cargo.toml b/Cargo.toml index 225b532c61..9f8192798c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -107,7 +107,7 @@ tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" trybuild = "1.0.96" -url = "2.5.0" +url = "2.5.1" wabt = "0.10.0" wasm-bindgen-test = "0.3.24" which = "5.0.0" From d66f306b371e41307d4c0494f09bb3c6f18ec4c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Jun 2024 08:20:16 +0200 Subject: [PATCH 047/137] build(deps): bump clap from 4.5.6 to 4.5.7 (#1643) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.6 to 4.5.7. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.5.6...v4.5.7) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 10 +++++----- Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2bb7c30a19..cc323d052a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -863,9 +863,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.6" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9689a29b593160de5bc4aacab7b5d54fb52231de70122626c178e6a368994c7" +checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" dependencies = [ "clap_builder", "clap_derive", @@ -873,9 +873,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.6" +version = "4.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e5387378c84f6faa26890ebf9f0a92989f8873d4d380467bcd0d8d8620424df" +checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" dependencies = [ "anstream", "anstyle", @@ -4937,7 +4937,7 @@ dependencies = [ name = "subxt-cli" version = "0.37.0" dependencies = [ - "clap 4.5.6", + "clap 4.5.7", "color-eyre", "frame-metadata 16.0.0", "heck 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index 9f8192798c..bb25bd0cb1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,7 +67,7 @@ assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } blake2 = { version = "0.10.6", default-features = false } -clap = { version = "4.5.6", features = ["derive", "cargo"] } +clap = { version = "4.5.7", features = ["derive", "cargo"] } cfg-if = "1.0.0" criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } From 5a5c5fc3823c63f1093d1ced75fbe5e6fcb48df1 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> Date: Wed, 19 Jun 2024 13:31:04 +0200 Subject: [PATCH 048/137] Add 20-byte account id to subxt_core (#1638) * Add accountId20 impl to subxt_core closes #1576 --- Cargo.lock | 1 + codegen/src/lib.rs | 6 +- core/Cargo.toml | 3 + core/src/utils/account_id20.rs | 163 ++++++++++++++++++++++++++++ core/src/utils/mod.rs | 2 + signer/Cargo.toml | 9 +- signer/src/eth.rs | 135 +++++++++++------------ subxt/examples/tx_basic_frontier.rs | 15 +-- 8 files changed, 253 insertions(+), 81 deletions(-) create mode 100644 core/src/utils/account_id20.rs diff --git a/Cargo.lock b/Cargo.lock index cc323d052a..e0716c251c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4995,6 +4995,7 @@ dependencies = [ "hashbrown 0.14.5", "hex", "impl-serde", + "keccak-hash", "parity-scale-codec", "primitive-types", "scale-bits", diff --git a/codegen/src/lib.rs b/codegen/src/lib.rs index 728926262b..c61b060400 100644 --- a/codegen/src/lib.rs +++ b/codegen/src/lib.rs @@ -358,7 +358,7 @@ fn default_derives(crate_path: &syn::Path) -> DerivesRegistry { fn default_substitutes(crate_path: &syn::Path) -> TypeSubstitutes { let mut type_substitutes = TypeSubstitutes::new(); - let defaults: [(syn::Path, syn::Path); 12] = [ + let defaults: [(syn::Path, syn::Path); 13] = [ ( parse_quote!(bitvec::order::Lsb0), parse_quote!(#crate_path::utils::bits::Lsb0), @@ -371,6 +371,10 @@ fn default_substitutes(crate_path: &syn::Path) -> TypeSubstitutes { parse_quote!(sp_core::crypto::AccountId32), parse_quote!(#crate_path::utils::AccountId32), ), + ( + parse_quote!(fp_account::AccountId20), + parse_quote!(#crate_path::utils::AccountId20), + ), ( parse_quote!(sp_runtime::multiaddress::MultiAddress), parse_quote!(#crate_path::utils::MultiAddress), diff --git a/core/Cargo.toml b/core/Cargo.toml index cc77f943ea..638fa570c4 100644 --- a/core/Cargo.toml +++ b/core/Cargo.toml @@ -64,6 +64,9 @@ sp-core = { workspace = true, optional = true } sp-runtime = { workspace = true, optional = true } tracing = { workspace = true, default-features = false } +# AccountId20 +keccak-hash = { workspace = true} + [dev-dependencies] assert_matches = { workspace = true } bitvec = { workspace = true } diff --git a/core/src/utils/account_id20.rs b/core/src/utils/account_id20.rs new file mode 100644 index 0000000000..3f04f5706d --- /dev/null +++ b/core/src/utils/account_id20.rs @@ -0,0 +1,163 @@ +// Copyright 2019-2024 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +//! `AccountId20` is a repressentation of Ethereum address derived from hashing the public key. + +use core::fmt::Display; + +use alloc::format; +use alloc::string::String; +use codec::{Decode, Encode}; +use keccak_hash::keccak; +use serde::{Deserialize, Serialize}; + +#[derive( + Copy, + Clone, + Eq, + PartialEq, + Ord, + PartialOrd, + Encode, + Decode, + Debug, + scale_encode::EncodeAsType, + scale_decode::DecodeAsType, + scale_info::TypeInfo, +)] +/// Ethereum-compatible `AccountId`. +pub struct AccountId20(pub [u8; 20]); + +impl AsRef<[u8]> for AccountId20 { + fn as_ref(&self) -> &[u8] { + &self.0[..] + } +} + +impl AsRef<[u8; 20]> for AccountId20 { + fn as_ref(&self) -> &[u8; 20] { + &self.0 + } +} + +impl From<[u8; 20]> for AccountId20 { + fn from(x: [u8; 20]) -> Self { + AccountId20(x) + } +} + +impl AccountId20 { + /// Convert to a public key hash + pub fn checksum(&self) -> String { + let hex_address = hex::encode(self.0); + let hash = keccak(hex_address.as_bytes()); + + let mut checksum_address = String::with_capacity(42); + checksum_address.push_str("0x"); + + for (i, ch) in hex_address.chars().enumerate() { + // Get the corresponding nibble from the hash + let nibble = hash[i / 2] >> (if i % 2 == 0 { 4 } else { 0 }) & 0xf; + + if nibble >= 8 { + checksum_address.push(ch.to_ascii_uppercase()); + } else { + checksum_address.push(ch); + } + } + + checksum_address + } +} + +/// An error obtained from trying to interpret a hex encoded string into an AccountId20 +#[derive(Clone, Copy, Eq, PartialEq, Debug)] +#[allow(missing_docs)] +pub enum FromChecksumError { + BadLength, + InvalidChecksum, + InvalidPrefix, +} + +impl Display for FromChecksumError { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + FromChecksumError::BadLength => write!(f, "Length is bad"), + FromChecksumError::InvalidChecksum => write!(f, "Invalid checksum"), + FromChecksumError::InvalidPrefix => write!(f, "Invalid checksum prefix byte."), + } + } +} + +#[cfg(feature = "std")] +impl std::error::Error for FromChecksumError {} + +impl Serialize for AccountId20 { + fn serialize(&self, serializer: S) -> Result + where + S: serde::Serializer, + { + serializer.serialize_str(&self.checksum()) + } +} + +impl<'de> Deserialize<'de> for AccountId20 { + fn deserialize(deserializer: D) -> Result + where + D: serde::Deserializer<'de>, + { + String::deserialize(deserializer)? + .parse::() + .map_err(|e| serde::de::Error::custom(format!("{e:?}"))) + } +} + +impl core::fmt::Display for AccountId20 { + fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result { + write!(f, "{}", self.checksum()) + } +} + +impl core::str::FromStr for AccountId20 { + type Err = FromChecksumError; + fn from_str(s: &str) -> Result { + if s.len() != 42 { + return Err(FromChecksumError::BadLength); + } + if !s.starts_with("0x") { + return Err(FromChecksumError::InvalidPrefix); + } + hex::decode(&s.as_bytes()[2..]) + .map_err(|_| FromChecksumError::InvalidChecksum)? + .try_into() + .map(AccountId20) + .map_err(|_| FromChecksumError::BadLength) + } +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn deserialisation() { + let key_hashes = vec![ + "0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac", + "0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0", + "0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc", + "0x773539d4Ac0e786233D90A233654ccEE26a613D9", + "0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB", + "0xC0F0f4ab324C46e55D02D0033343B4Be8A55532d", + ]; + + for key_hash in key_hashes { + let parsed: AccountId20 = key_hash.parse().expect("Failed to parse"); + + let encoded = parsed.checksum(); + + // `encoded` should be equal to the initial key_hash + assert_eq!(encoded, key_hash); + } + } +} diff --git a/core/src/utils/mod.rs b/core/src/utils/mod.rs index 034a5b12a8..42c499f85c 100644 --- a/core/src/utils/mod.rs +++ b/core/src/utils/mod.rs @@ -5,6 +5,7 @@ //! Miscellaneous utility helpers. mod account_id; +mod account_id20; pub mod bits; mod era; mod multi_address; @@ -21,6 +22,7 @@ use codec::{Compact, Decode, Encode}; use derive_where::derive_where; pub use account_id::AccountId32; +pub use account_id20::AccountId20; pub use era::Era; pub use multi_address::MultiAddress; pub use multi_signature::MultiSignature; diff --git a/signer/Cargo.toml b/signer/Cargo.toml index d83c5f31f7..17356a9722 100644 --- a/signer/Cargo.toml +++ b/signer/Cargo.toml @@ -49,7 +49,9 @@ secrecy = { workspace = true } regex = { workspace = true, features = ["unicode"] } hex = { workspace = true, features = ["alloc"] } cfg-if = { workspace = true } -codec = { package = "parity-scale-codec", workspace = true, features = ["derive"] } +codec = { package = "parity-scale-codec", workspace = true, features = [ + "derive", +] } sp-crypto-hashing = { workspace = true } pbkdf2 = { workspace = true } sha2 = { workspace = true } @@ -58,7 +60,10 @@ zeroize = { workspace = true } bip39 = { workspace = true } bip32 = { workspace = true, features = ["alloc", "secp256k1"], optional = true } schnorrkel = { workspace = true, optional = true } -secp256k1 = { workspace = true, optional = true, features = ["alloc", "recovery"] } +secp256k1 = { workspace = true, optional = true, features = [ + "alloc", + "recovery", +] } keccak-hash = { workspace = true, optional = true } # We only pull this in to enable the JS flag for schnorrkel to use. diff --git a/signer/src/eth.rs b/signer/src/eth.rs index 3a82580a4c..dec98976a4 100644 --- a/signer/src/eth.rs +++ b/signer/src/eth.rs @@ -6,7 +6,6 @@ use crate::ecdsa; use alloc::format; -use alloc::string::String; use core::fmt::{Display, Formatter}; use core::str::FromStr; use keccak_hash::keccak; @@ -17,6 +16,15 @@ const SECRET_KEY_LENGTH: usize = 32; /// Bytes representing a private key. pub type SecretKeyBytes = [u8; SECRET_KEY_LENGTH]; +/// The public key for an [`Keypair`] key pair. This is the uncompressed variant of [`ecdsa::PublicKey`]. +pub struct PublicKey(pub [u8; 65]); + +impl AsRef<[u8]> for PublicKey { + fn as_ref(&self) -> &[u8] { + &self.0 + } +} + /// An ethereum keypair implementation. #[derive(Debug, Clone, PartialEq, Eq)] pub struct Keypair(ecdsa::Keypair); @@ -89,18 +97,10 @@ impl Keypair { .map_err(|_| Error::InvalidSeed) } - /// Obtain the [`ecdsa::PublicKey`] of this keypair. - pub fn public_key(&self) -> ecdsa::PublicKey { - self.0.public_key() - } - - /// Obtains the public address of the account by taking the last 20 bytes - /// of the Keccak-256 hash of the public key. - pub fn account_id(&self) -> AccountId20 { + /// Obtain the [`eth::PublicKey`] of this keypair. + pub fn public_key(&self) -> PublicKey { let uncompressed = self.0 .0.public_key().serialize_uncompressed(); - let hash = keccak(&uncompressed[1..]).0; - let hash20 = hash[12..].try_into().expect("should be 20 bytes"); - AccountId20(hash20) + PublicKey(uncompressed) } /// Signs an arbitrary message payload. @@ -113,7 +113,6 @@ impl Keypair { Signature(self.0.sign_prehashed(message_hash).0) } } - /// A derivation path. This can be parsed from a valid derivation path string like /// `"m/44'/60'/0'/0/0"`, or we can construct one using the helpers [`DerivationPath::empty()`] /// and [`DerivationPath::eth()`]. @@ -168,45 +167,6 @@ impl AsRef<[u8; 65]> for Signature { } } -/// A 20-byte cryptographic identifier. -#[derive(Debug, Copy, Clone, PartialEq, Eq, codec::Encode)] -pub struct AccountId20(pub [u8; 20]); - -impl AccountId20 { - fn checksum(&self) -> String { - let hex_address = hex::encode(self.0); - let hash = keccak(hex_address.as_bytes()); - - let mut checksum_address = String::with_capacity(42); - checksum_address.push_str("0x"); - - for (i, ch) in hex_address.chars().enumerate() { - // Get the corresponding nibble from the hash - let nibble = hash[i / 2] >> (if i % 2 == 0 { 4 } else { 0 }) & 0xf; - - if nibble >= 8 { - checksum_address.push(ch.to_ascii_uppercase()); - } else { - checksum_address.push(ch); - } - } - - checksum_address - } -} - -impl AsRef<[u8]> for AccountId20 { - fn as_ref(&self) -> &[u8] { - &self.0 - } -} - -impl Display for AccountId20 { - fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result { - write!(f, "{}", self.checksum()) - } -} - /// Verify that some signature for a message was created by the owner of the [`PublicKey`]. /// /// ```rust @@ -219,12 +179,20 @@ impl Display for AccountId20 { /// let public_key = keypair.public_key(); /// assert!(eth::verify(&signature, message, &public_key)); /// ``` -pub fn verify>(sig: &Signature, message: M, pubkey: &ecdsa::PublicKey) -> bool { +pub fn verify>(sig: &Signature, message: M, pubkey: &PublicKey) -> bool { let message_hash = keccak(message.as_ref()); let wrapped = Message::from_digest_slice(message_hash.as_bytes()).expect("Message is 32 bytes; qed"); + let Ok(signature) = secp256k1::ecdsa::Signature::from_compact(&sig.as_ref()[..64]) else { + return false; + }; + let Ok(pk) = secp256k1::PublicKey::from_slice(&pubkey.0) else { + return false; + }; - ecdsa::internal::verify(&sig.0, &wrapped, pubkey) + secp256k1::Secp256k1::verification_only() + .verify_ecdsa(&wrapped, &signature, &pk) + .is_ok() } /// An error handed back if creating a keypair fails. @@ -290,36 +258,68 @@ pub mod dev { #[cfg(feature = "subxt")] mod subxt_compat { + use super::*; use subxt_core::config::Config; use subxt_core::tx::signer::Signer as SignerT; - - use super::*; + use subxt_core::utils::AccountId20; + use subxt_core::utils::MultiAddress; impl SignerT for Keypair where - T::AccountId: From, - T::Address: From, + T::AccountId: From, + T::Address: From, T::Signature: From, { fn account_id(&self) -> T::AccountId { - self.account_id().into() + self.public_key().into() } fn address(&self) -> T::Address { - self.account_id().into() + self.public_key().into() } fn sign(&self, signer_payload: &[u8]) -> T::Signature { self.sign(signer_payload).into() } } + + impl PublicKey { + /// Obtains the public address of the account by taking the last 20 bytes + /// of the Keccak-256 hash of the public key. + pub fn to_account_id(&self) -> AccountId20 { + let hash = keccak(&self.0[1..]).0; + let hash20 = hash[12..].try_into().expect("should be 20 bytes"); + AccountId20(hash20) + } + /// A shortcut to obtain a [`MultiAddress`] from a [`PublicKey`]. + /// We often want this type, and using this method avoids any + /// ambiguous type resolution issues. + pub fn to_address(self) -> MultiAddress { + MultiAddress::Address20(self.to_account_id().0) + } + } + + impl From for AccountId20 { + fn from(value: PublicKey) -> Self { + value.to_account_id() + } + } + + impl From for MultiAddress { + fn from(value: PublicKey) -> Self { + let address: AccountId20 = value.into(); + MultiAddress::Address20(address.0) + } + } } #[cfg(test)] +#[cfg(feature = "subxt")] mod test { use bip39::Mnemonic; use proptest::prelude::*; use secp256k1::Secp256k1; + use subxt_core::utils::AccountId20; use subxt_core::{config::*, tx::signer::Signer as SignerT, utils::H256}; @@ -392,7 +392,7 @@ mod test { fn check_subxt_signer_implementation_matches(keypair in keypair(), msg in ".*") { let msg_as_bytes = msg.as_bytes(); - assert_eq!(SubxtSigner::account_id(&keypair), keypair.account_id()); + assert_eq!(SubxtSigner::account_id(&keypair), keypair.public_key().to_account_id()); assert_eq!(SubxtSigner::sign(&keypair, msg_as_bytes), keypair.sign(msg_as_bytes)); } @@ -405,8 +405,9 @@ mod test { let hash20 = hash[12..].try_into().expect("should be 20 bytes"); AccountId20(hash20) }; - - assert_eq!(keypair.account_id(), account_id); + let account_id_derived_from_pk: AccountId20 = keypair.public_key().to_account_id(); + assert_eq!(account_id_derived_from_pk, account_id); + assert_eq!(keypair.public_key().to_account_id(), account_id); } @@ -465,7 +466,7 @@ mod test { ]; for (case_idx, (keypair, exp_account_id, exp_priv_key)) in cases.into_iter().enumerate() { - let act_account_id = keypair.account_id().to_string(); + let act_account_id = keypair.public_key().to_account_id().checksum(); let act_priv_key = format!("0x{}", &keypair.0 .0.display_secret()); assert_eq!( @@ -610,7 +611,7 @@ mod test { fn test_account_derivation_1() { let kp = Keypair::from_secret_key(KEY_1).expect("valid keypair"); assert_eq!( - kp.account_id().to_string(), + kp.public_key().to_account_id().checksum(), "0x976f8456E4e2034179B284A23C0e0c8f6d3da50c" ); } @@ -619,7 +620,7 @@ mod test { fn test_account_derivation_2() { let kp = Keypair::from_secret_key(KEY_2).expect("valid keypair"); assert_eq!( - kp.account_id().to_string(), + kp.public_key().to_account_id().checksum(), "0x420e9F260B40aF7E49440ceAd3069f8e82A5230f" ); } @@ -628,7 +629,7 @@ mod test { fn test_account_derivation_3() { let kp = Keypair::from_secret_key(KEY_3).expect("valid keypair"); assert_eq!( - kp.account_id().to_string(), + kp.public_key().to_account_id().checksum(), "0x9cce34F7aB185c7ABA1b7C8140d620B4BDA941d6" ); } diff --git a/subxt/examples/tx_basic_frontier.rs b/subxt/examples/tx_basic_frontier.rs index adeba406d0..4749eed47b 100644 --- a/subxt/examples/tx_basic_frontier.rs +++ b/subxt/examples/tx_basic_frontier.rs @@ -6,7 +6,8 @@ #![allow(missing_docs)] use subxt::OnlineClient; -use subxt_signer::eth::{dev, AccountId20, Signature}; +use subxt_core::utils::AccountId20; +use subxt_signer::eth::{dev, Signature}; #[subxt::subxt(runtime_metadata_path = "../artifacts/frontier_metadata_small.scale")] mod eth_runtime {} @@ -25,28 +26,20 @@ impl subxt::Config for EthRuntimeConfig { type AssetId = u32; } -// This helper makes it easy to use our `AccountId20`'s with generated -// code that expects a generated `eth_runtime::runtime_types::fp_account:AccountId20` type. -impl From for eth_runtime::runtime_types::fp_account::AccountId20 { - fn from(a: AccountId20) -> Self { - eth_runtime::runtime_types::fp_account::AccountId20(a.0) - } -} - #[tokio::main] async fn main() -> Result<(), Box> { let api = OnlineClient::::from_insecure_url("ws://127.0.0.1:9944").await?; let alith = dev::alith(); let baltathar = dev::baltathar(); - let dest = baltathar.account_id(); + let dest = baltathar.public_key().to_account_id(); println!("baltathar pub: {}", hex::encode(baltathar.public_key().0)); println!("baltathar addr: {}", hex::encode(dest)); let balance_transfer_tx = eth_runtime::tx() .balances() - .transfer_allow_death(dest.into(), 10_001); + .transfer_allow_death(dest, 10_001); let events = api .tx() From 505591e09600ea904be921bdbd27df064d0dcc23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 11:17:43 +0100 Subject: [PATCH 049/137] build(deps): bump andymckay/cancel-action from 0.4 to 0.5 (#1646) Bumps [andymckay/cancel-action](https://github.com/andymckay/cancel-action) from 0.4 to 0.5. - [Release notes](https://github.com/andymckay/cancel-action/releases) - [Commits](https://github.com/andymckay/cancel-action/compare/271cfbfa11ca9222f7be99a47e8f929574549e0a...a955d435292c0d409d104b57d8e78435a93a6ef1) --- updated-dependencies: - dependency-name: andymckay/cancel-action dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- .github/workflows/rust.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index b9f64ba34d..f049cf6d91 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -47,7 +47,7 @@ jobs: args: --all -- --check - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 machete: name: "Check unused dependencies" @@ -78,7 +78,7 @@ jobs: command: machete - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 clippy: name: Cargo clippy @@ -110,7 +110,7 @@ jobs: cargo clippy -p subxt --no-default-features --features web,unstable-light-client -- -D warnings - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 wasm_clippy: name: Cargo clippy (WASM) @@ -141,7 +141,7 @@ jobs: args: -p subxt --no-default-features --features web,unstable-light-client,jsonrpsee --target wasm32-unknown-unknown -- -D warnings - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 check: name: Cargo check @@ -204,7 +204,7 @@ jobs: run: cargo check --manifest-path examples/parachain-example/Cargo.toml - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 wasm_check: name: Cargo check (WASM) @@ -231,7 +231,7 @@ jobs: cargo check --manifest-path examples/wasm-example/Cargo.toml --target wasm32-unknown-unknown - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 docs: name: Check documentation and run doc tests @@ -264,7 +264,7 @@ jobs: args: --doc - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 tests: name: "Test (Native)" @@ -298,7 +298,7 @@ jobs: args: run --workspace - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 unstable_backend_tests: name: "Test (Unstable Backend)" @@ -332,7 +332,7 @@ jobs: args: run --workspace --features unstable-backend-client - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 light_client_tests: name: "Test (Light Client)" @@ -363,7 +363,7 @@ jobs: args: --release --package integration-tests --features unstable-light-client - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 wasm_tests: name: Test (WASM) @@ -419,7 +419,7 @@ jobs: working-directory: signer/wasm-tests - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 no-std-tests: name: "Test (no_std)" @@ -453,4 +453,4 @@ jobs: working-directory: testing/no-std-tests - if: "failure()" - uses: "andymckay/cancel-action@271cfbfa11ca9222f7be99a47e8f929574549e0a" # v0.4 + uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 From ad4fae6a2a84298110a2b9b4dceabab344aafca5 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Mon, 24 Jun 2024 13:01:22 +0200 Subject: [PATCH 050/137] fix(tests): don't assume order of balance transfer extrinsics (#1655) * fix(tests): don't assert order of balanace ext * move timestamp to loop --- .../src/full_client/blocks/mod.rs | 48 ++++++++++++------- 1 file changed, 32 insertions(+), 16 deletions(-) diff --git a/testing/integration-tests/src/full_client/blocks/mod.rs b/testing/integration-tests/src/full_client/blocks/mod.rs index c83e395ee5..4125397b21 100644 --- a/testing/integration-tests/src/full_client/blocks/mod.rs +++ b/testing/integration-tests/src/full_client/blocks/mod.rs @@ -226,23 +226,39 @@ async fn fetch_block_and_decode_extrinsic_details() { .map(|res| res.unwrap()) .collect::>(); - // All blocks contain a timestamp; check this first: - let timestamp = block_extrinsics.first().unwrap(); - timestamp.as_root_extrinsic::().unwrap(); - timestamp - .as_extrinsic::() - .unwrap(); - assert!(!timestamp.is_signed()); + let mut balance = None; + let mut timestamp = None; - // Next we expect our transfer: - let tx = block_extrinsics.get(1).unwrap(); - tx.as_root_extrinsic::().unwrap(); - let ext = tx - .as_extrinsic::() - .unwrap() - .unwrap(); - assert_eq!(ext.value, 10_000); - assert!(tx.is_signed()); + for tx in block_extrinsics { + tx.as_root_extrinsic::().unwrap(); + + if let Some(ext) = tx + .as_extrinsic::() + .unwrap() + { + timestamp = Some((ext, tx.is_signed())); + } + + if let Some(ext) = tx + .as_extrinsic::() + .unwrap() + { + balance = Some((ext, tx.is_signed())); + } + } + + // Check that we found the timestamp + { + let (_, is_signed) = timestamp.expect("Timestamp not found"); + assert!(!is_signed); + } + + // Check that we found the balance transfer + { + let (tx, is_signed) = balance.expect("Balance transfer not found"); + assert_eq!(tx.value, 10_000); + assert!(is_signed); + } } #[cfg(fullclient)] From 58fe7c9a4ea343d3e42fefba64227f7fbe82ee55 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 13:31:11 +0200 Subject: [PATCH 051/137] build(deps): bump proc-macro2 from 1.0.85 to 1.0.86 (#1654) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.85 to 1.0.86. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.85...1.0.86) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e0716c251c..d0ba90489e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3410,9 +3410,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.85" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] diff --git a/Cargo.toml b/Cargo.toml index bb25bd0cb1..5705f48c9e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -88,7 +88,7 @@ jsonrpsee = { version = "0.22" } pretty_assertions = "1.4.0" primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" -proc-macro2 = "1.0.85" +proc-macro2 = "1.0.86" quote = "1.0.36" regex = { version = "1.10.5", default-features = false } scale-info = { version = "2.11.3", default-features = false } From 71ec142c98167aba33de50dca187266b3d4f3ebf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 13:31:33 +0200 Subject: [PATCH 052/137] build(deps): bump proptest from 1.4.0 to 1.5.0 (#1653) Bumps [proptest](https://github.com/proptest-rs/proptest) from 1.4.0 to 1.5.0. - [Release notes](https://github.com/proptest-rs/proptest/releases) - [Changelog](https://github.com/proptest-rs/proptest/blob/master/CHANGELOG.md) - [Commits](https://github.com/proptest-rs/proptest/compare/v1.4.0...v1.5.0) --- updated-dependencies: - dependency-name: proptest dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d0ba90489e..7c483852d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3419,9 +3419,9 @@ dependencies = [ [[package]] name = "proptest" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31b476131c3c86cb68032fdc5cb6d5a1045e3e42d96b69fa599fd77701e1f5bf" +checksum = "b4c2511913b88df1637da85cc8d96ec8e43a3f8bb8ccb71ee1ac240d6f3df58d" dependencies = [ "bit-set", "bit-vec", diff --git a/Cargo.toml b/Cargo.toml index 5705f48c9e..aebcd2fd44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -112,7 +112,7 @@ wabt = "0.10.0" wasm-bindgen-test = "0.3.24" which = "5.0.0" strip-ansi-escapes = "0.2.0" -proptest = "1.4.0" +proptest = "1.5.0" hex-literal = "0.4.1" # Light client support: From d408da1636549d82fc765bc522e730a08c9b47ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 13:31:52 +0200 Subject: [PATCH 053/137] build(deps): bump url from 2.5.1 to 2.5.2 (#1652) Bumps [url](https://github.com/servo/rust-url) from 2.5.1 to 2.5.2. - [Release notes](https://github.com/servo/rust-url/releases) - [Commits](https://github.com/servo/rust-url/compare/v2.5.1...v2.5.2) --- updated-dependencies: - dependency-name: url dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 267 +++-------------------------------------------------- Cargo.toml | 2 +- 2 files changed, 13 insertions(+), 256 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7c483852d5..1f2a7dfc85 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1352,17 +1352,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "displaydoc" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - [[package]] name = "docify" version = "0.2.8" @@ -2204,124 +2193,6 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db2fa452206ebee18c4b5c2274dbf1de17008e874b4dc4f0aea9d01ca79e4526" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locid" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13acbb8371917fc971be86fc8057c41a64b521c184808a698c02acc242dbf637" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_locid_transform" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01d11ac35de8e40fdeda00d9e1e9d92525f3f9d887cdd7aa81d727596788b54e" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_locid_transform_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_locid_transform_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc8ff3388f852bede6b579ad4e978ab004f139284d7b28715f773507b946f6e" - -[[package]] -name = "icu_normalizer" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ce3e0da2ec68599d193c93d088142efd7f9c5d6fc9b803774855747dc6a84f" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "utf16_iter", - "utf8_iter", - "write16", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8cafbf7aa791e9b22bec55a167906f9e1215fd475cd22adfcf660e03e989516" - -[[package]] -name = "icu_properties" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f8ac670d7422d7f76b32e17a5db556510825b29ec9154f235977c9caba61036" -dependencies = [ - "displaydoc", - "icu_collections", - "icu_locid_transform", - "icu_properties_data", - "icu_provider", - "tinystr", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67a8effbc3dd3e4ba1afa8ad918d5684b8868b3b26500753effea8d2eed19569" - -[[package]] -name = "icu_provider" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ed421c8a8ef78d3e2dbc98a973be2f3770cb42b606e3ab18d6237c4dfde68d9" -dependencies = [ - "displaydoc", - "icu_locid", - "icu_provider_macros", - "stable_deref_trait", - "tinystr", - "writeable", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_provider_macros" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ec89e9337638ecdc08744df490b221a7399bf8d164eb52a665454e60e075ad6" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - [[package]] name = "ident_case" version = "1.0.1" @@ -2330,14 +2201,12 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "idna" -version = "1.0.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4716a3a0933a1d01c2f72450e89596eb51dd34ef3c211ccd875acdf1f8fe47ed" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" dependencies = [ - "icu_normalizer", - "icu_properties", - "smallvec", - "utf8_iter", + "unicode-bidi", + "unicode-normalization", ] [[package]] @@ -2739,12 +2608,6 @@ version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" -[[package]] -name = "litemap" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643cb0b8d4fcc284004d5fd0d67ccf61dfffadb7f75e1e71bc420f4688a3a704" - [[package]] name = "lock_api" version = "0.4.12" @@ -5124,17 +4987,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] - [[package]] name = "tap" version = "1.0.1" @@ -5229,16 +5081,6 @@ dependencies = [ "crunchy", ] -[[package]] -name = "tinystr" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9117f5d4db391c1cf6927e7bea3db74b9a1c1add8f7eda9ffd5364f40f57b82f" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tinytemplate" version = "1.2.1" @@ -5635,6 +5477,12 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + [[package]] name = "unicode-ident" version = "1.0.12" @@ -5674,27 +5522,15 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.1" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7c25da092f0a868cdf09e8674cd3b7ef3a7d92a24253e663a2fb85e2496de56" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", "percent-encoding", ] -[[package]] -name = "utf16_iter" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8232dd3cdaed5356e0f716d285e4b40b932ac434100fe9b7e0e8e935b9e6246" - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - [[package]] name = "utf8parse" version = "0.2.1" @@ -6348,18 +6184,6 @@ dependencies = [ "memchr", ] -[[package]] -name = "write16" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1890f4022759daae28ed4fe62859b1236caebfc61ede2f63ed4e695f3f6d936" - -[[package]] -name = "writeable" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9df38ee2d2c3c5948ea468a8406ff0db0b29ae1ffde1bcf20ef305bcc95c51" - [[package]] name = "wyz" version = "0.5.1" @@ -6393,30 +6217,6 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff4524214bc4629eba08d78ceb1d6507070cc0bcbbed23af74e19e6e924a24cf" -[[package]] -name = "yoke" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c5b1314b079b0930c31e3af543d8ee1757b1951ae1e1565ec704403a7240ca5" -dependencies = [ - "serde", - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28cc31741b18cb6f1d5ff12f5b7523e3d6eb0852bbbad19d73905511d9849b95" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", - "synstructure", -] - [[package]] name = "zerocopy" version = "0.7.32" @@ -6437,27 +6237,6 @@ dependencies = [ "syn 2.0.60", ] -[[package]] -name = "zerofrom" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ec111ce797d0e0784a1116d0ddcdbea84322cd79e5d5ad173daeba4f93ab55" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ea7b4a3637ea8669cedf0f1fd5c286a17f3de97b8dd5a70a6c167a1730e63a5" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", - "synstructure", -] - [[package]] name = "zeroize" version = "1.8.1" @@ -6477,25 +6256,3 @@ dependencies = [ "quote", "syn 2.0.60", ] - -[[package]] -name = "zerovec" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2cc8827d6c0994478a15c53f374f46fbd41bea663d809b14744bc42e6b109c" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97cf56601ee5052b4417d90c8755c6683473c926039908196cf35d99f893ebe7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.60", -] diff --git a/Cargo.toml b/Cargo.toml index aebcd2fd44..ea7032edcf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -107,7 +107,7 @@ tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" trybuild = "1.0.96" -url = "2.5.1" +url = "2.5.2" wabt = "0.10.0" wasm-bindgen-test = "0.3.24" which = "5.0.0" From 4a07b64c27bf69042d1e8ab321a268d511723362 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Mon, 24 Jun 2024 14:29:08 +0100 Subject: [PATCH 054/137] Allow running integration tests given a SUBXT_TEST_URL=ws://foo:port (#1640) * Allow running integration tests given a SUBXT_TEST_URL=ws://foo:port * update comment * fmt * Fix lightclient get_url usage * fix light client * fix lightclient tests take 2 --- .../integration-tests/src/utils/node_proc.rs | 60 +++++++++++++++---- 1 file changed, 47 insertions(+), 13 deletions(-) diff --git a/testing/integration-tests/src/utils/node_proc.rs b/testing/integration-tests/src/utils/node_proc.rs index 65ce790b3f..b2c0197d5f 100644 --- a/testing/integration-tests/src/utils/node_proc.rs +++ b/testing/integration-tests/src/utils/node_proc.rs @@ -11,10 +11,32 @@ use subxt::{ Config, OnlineClient, }; +// The URL that we'll connect to for our tests comes from SUBXT_TEXT_HOST env var, +// defaulting to localhost if not provided. If the env var is set, we won't spawn +// a binary. Note though that some tests expect and modify a fresh state, and so will +// fail. Fo a similar reason wyou should also use `--test-threads 1` when running tests +// to reduce the number of conflicts between state altering tests. +const URL_ENV_VAR: &str = "SUBXT_TEST_URL"; +fn is_url_provided() -> bool { + std::env::var(URL_ENV_VAR).is_ok() +} +fn get_url(port: Option) -> String { + match (std::env::var(URL_ENV_VAR).ok(), port) { + (Some(host), None) => host, + (None, Some(port)) => format!("ws://127.0.0.1:{port}"), + (Some(_), Some(_)) => { + panic!("{URL_ENV_VAR} and port provided: only one or the other should exist") + } + (None, None) => { + panic!("No {URL_ENV_VAR} or port was provided, so we don't know where to connect to") + } + } +} + /// Spawn a local substrate node for testing subxt. pub struct TestNodeProcess { // Keep a handle to the node; once it's dropped the node is killed. - proc: SubstrateNode, + proc: Option, // Lazily construct these when asked for. unstable_client: RefCell>>, @@ -50,7 +72,7 @@ where /// Hand back an RPC client connected to the test node. pub async fn rpc_client(&self) -> rpc::RpcClient { - let url = format!("ws://127.0.0.1:{}", self.proc.ws_port()); + let url = get_url(self.proc.as_ref().map(|p| p.ws_port())); rpc::RpcClient::from_url(url) .await .expect("Unable to connect RPC client to test node") @@ -124,17 +146,21 @@ impl TestNodeProcessBuilder { where R: Config, { - let mut node_builder = SubstrateNode::builder(); + // Only spawn a process if a URL to target wasn't provided as an env var. + let proc = if !is_url_provided() { + let mut node_builder = SubstrateNode::builder(); + node_builder.binary_paths(&self.node_paths); - node_builder.binary_paths(&self.node_paths); + if let Some(authority) = &self.authority { + node_builder.arg(authority.to_lowercase()); + } - if let Some(authority) = &self.authority { - node_builder.arg(authority.to_lowercase()); - } + Some(node_builder.spawn().map_err(|e| e.to_string())?) + } else { + None + }; - // Spawn the node and retrieve a URL to it: - let proc = node_builder.spawn().map_err(|e| e.to_string())?; - let ws_url = format!("ws://127.0.0.1:{}", proc.ws_port()); + let ws_url = get_url(proc.as_ref().map(|p| p.ws_port())); let rpc_client = build_rpc_client(&ws_url) .await .map_err(|e| format!("Failed to connect to node at {ws_url}: {e}"))?; @@ -173,7 +199,7 @@ impl TestNodeProcessBuilder { } async fn build_rpc_client(ws_url: &str) -> Result { - let rpc_client = rpc::RpcClient::from_url(ws_url) + let rpc_client = rpc::RpcClient::from_insecure_url(ws_url) .await .map_err(|e| format!("Cannot construct RPC client: {e}"))?; @@ -217,10 +243,18 @@ async fn build_unstable_client( } #[cfg(lightclient)] -async fn build_light_client(proc: &SubstrateNode) -> Result, String> { +async fn build_light_client( + maybe_proc: &Option, +) -> Result, String> { use subxt::lightclient::{ChainConfig, LightClient}; - // RPC endpoint. + let proc = if let Some(proc) = maybe_proc { + proc + } else { + return Err("Cannot build light client: no substrate node is running (you can't start a light client when pointing to an external node)".into()); + }; + + // RPC endpoint. Only localhost works. let ws_url = format!("ws://127.0.0.1:{}", proc.ws_port()); // Wait for a few blocks to be produced using the subxt client. From b48f68001b226b5585a059972e9261ec89331c51 Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 15:33:33 +0100 Subject: [PATCH 055/137] Update Artifacts (auto-generated) (#1651) * Update Artifacts (auto-generated) * update extrinsic bytes * XcmDryRunApi -> DryRunApi --------- Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> Co-authored-by: James Wilson Co-authored-by: Niklas Adolfsson --- artifacts/demo_chain_specs/polkadot.json | 22 +- artifacts/polkadot_metadata_full.scale | Bin 415977 -> 414617 bytes artifacts/polkadot_metadata_small.scale | Bin 99989 -> 101538 bytes artifacts/polkadot_metadata_tiny.scale | Bin 67552 -> 69164 bytes cli/src/commands/explore/mod.rs | 2 +- core/src/blocks/mod.rs | 6 +- .../src/full_client/codegen/polkadot.rs | 3828 ++++++++--------- 7 files changed, 1745 insertions(+), 2113 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 0fcba9fc34..e8e85df1f6 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -13,15 +13,15 @@ "/dns/boot.stake.plus/tcp/30334/wss/p2p/12D3KooWKT4ZHNxXH4icMjdrv7EwWBkfbz5duxE5sdJKKeWFYi5n", "/dns/boot-node.helikon.io/tcp/7070/p2p/12D3KooWS9ZcvRxyzrSf6p63QfTCWs12nLoNKhGux865crgxVA4H", "/dns/boot-node.helikon.io/tcp/7072/wss/p2p/12D3KooWS9ZcvRxyzrSf6p63QfTCWs12nLoNKhGux865crgxVA4H", - "/dns/polkadot.bootnode.amforc.com/tcp/30333/p2p/12D3KooWAsuCEVCzUVUrtib8W82Yne3jgVGhQZN3hizko5FTnDg3", - "/dns/polkadot.bootnode.amforc.com/tcp/30334/wss/p2p/12D3KooWAsuCEVCzUVUrtib8W82Yne3jgVGhQZN3hizko5FTnDg3", + "/dns/polkadot.bootnode.amforc.com/tcp/30001/p2p/12D3KooWT2HyZx5C6BBeLbCKhYG2SqJYuiu7sLMxGzUcQBko3BMr", + "/dns/polkadot.bootnode.amforc.com/tcp/29999/wss/p2p/12D3KooWT2HyZx5C6BBeLbCKhYG2SqJYuiu7sLMxGzUcQBko3BMr", "/dns/polkadot.bootnodes.polkadotters.com/tcp/30314/p2p/12D3KooWPAVUgBaBk6n8SztLrMk8ESByncbAfRKUdxY1nygb9zG3", "/dns/polkadot.bootnodes.polkadotters.com/tcp/30316/wss/p2p/12D3KooWPAVUgBaBk6n8SztLrMk8ESByncbAfRKUdxY1nygb9zG3", - "/dns/boot-cr.gatotech.network/tcp/33100/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", - "/dns/boot-cr.gatotech.network/tcp/35100/wss/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", - "/dns/boot-polkadot.metaspan.io/tcp/13012/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", - "/dns/boot-polkadot.metaspan.io/tcp/13015/ws/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", - "/dns/boot-polkadot.metaspan.io/tcp/13016/wss/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", + "/dns/boot.gatotech.network/tcp/33100/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", + "/dns/boot.gatotech.network/tcp/35100/wss/p2p/12D3KooWK4E16jKk9nRhvC4RfrDVgcZzExg8Q3Q2G7ABUUitks1w", + "/dns/boot.metaspan.io/tcp/13012/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", + "/dns/boot.metaspan.io/tcp/13015/ws/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", + "/dns/boot.metaspan.io/tcp/13016/wss/p2p/12D3KooWRjHFApinuqSBjoaDjQHvxwubQSpEVy5hrgC9Smvh92WF", "/dns/polkadot-bootnode.turboflakes.io/tcp/30300/p2p/12D3KooWHJBMZgt7ymAdTRtadPcGXpJw79vBGe8z53r9JMkZW7Ha", "/dns/polkadot-bootnode.turboflakes.io/tcp/30400/wss/p2p/12D3KooWHJBMZgt7ymAdTRtadPcGXpJw79vBGe8z53r9JMkZW7Ha", "/dns/polkadot-boot-ng.dwellir.com/tcp/443/wss/p2p/12D3KooWFFqjBKoSdQniRpw1Y8W6kkV7takWv1DU2ZMkaA81PYVq", @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x0462be1d7f955d318053a46c7764a31fe437465b7a978c16cd91ed6544025f30c754093e010173630c1100000000d36c0c110000000004a279d4c8ad7b76d38f76ec01220a99d7e9a90246843f1377fdd6aaa1904b890fab123e0101d36c0c110000000033760c1100000000043655472e89b8314bee2666a5f60a18a20f09223334f9ae374e5346db39ed572a001c3e010133760c1100000000937f0c110000000000000c3655472e89b8314bee2666a5f60a18a20f09223334f9ae374e5346db39ed572a001c3e0101172200000000000033760c11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc353100100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d07401000000000000005ead982fe12649ace29269eddedca2d53d158903191b650c7d88837490857d54010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e453dc2fc07cd1ecb220d1aad669e72554850f454c184daf87a4df5710a5e54e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b18145010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b78010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e7901000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000980a1f19be33b36426340ca085bc454b7db2c34735930978808f54f8f266d62301000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de3801000000000000001a3ea41fd7c529d6705daa42454e73fb5094a0ecaf6ebb4f0ee07c044b70ba6b01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000044f8580dad3559a76d0b66af3ddddd0dfbf32c9e4dfa034b318ae6157d9f6544010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000fea502b0ab1db6f349056e0cdff4dfe1546a462de207c6705120e2def4275478010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000ae91c31922f356569c76a9cd203ba71b3eadedac2d8d001feebf43a39ccd10370100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd07010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a01000000000000008e3509e2bcb4497b4bd7b09dbc1d5647212386afc663222f97602067211607160100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f42236010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c0001000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe3810301000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008859563f3d771b1ca9e5afb70b9c760158a970bf9767060c34af3eb32354ba5d0100000000000000ea91265245370af168ddb825e2429a9b0e9618d5d96444c2dc2764b1b7b0bb4a0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000002af697b059e695cd91918674e6c6140adda4b9f301004a6146598bd2d4e8f2bc010000000000000004000000000000000262be1d7f955d318053a46c7764a31fe437465b7a978c16cd91ed6544025f30c754093e0101152200000000000073630c11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc353100100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d07401000000000000005ead982fe12649ace29269eddedca2d53d158903191b650c7d88837490857d54010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e453dc2fc07cd1ecb220d1aad669e72554850f454c184daf87a4df5710a5e54e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b18145010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b78010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e7901000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000980a1f19be33b36426340ca085bc454b7db2c34735930978808f54f8f266d62301000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de3801000000000000001a3ea41fd7c529d6705daa42454e73fb5094a0ecaf6ebb4f0ee07c044b70ba6b01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000044f8580dad3559a76d0b66af3ddddd0dfbf32c9e4dfa034b318ae6157d9f6544010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000fea502b0ab1db6f349056e0cdff4dfe1546a462de207c6705120e2def4275478010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000ae91c31922f356569c76a9cd203ba71b3eadedac2d8d001feebf43a39ccd10370100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd07010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a01000000000000008e3509e2bcb4497b4bd7b09dbc1d5647212386afc663222f97602067211607160100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f42236010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c0001000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe3810301000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008859563f3d771b1ca9e5afb70b9c760158a970bf9767060c34af3eb32354ba5d0100000000000000ea91265245370af168ddb825e2429a9b0e9618d5d96444c2dc2764b1b7b0bb4a0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000007d4ee4d569d4a86c34b95825350cddc88c47a67fdd40fb3bf749c2209b4640530100000000000000040000000000000002a279d4c8ad7b76d38f76ec01220a99d7e9a90246843f1377fdd6aaa1904b890fab123e01011622000000000000d36c0c11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a0501000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b3796349100100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000847bc93f38617720b6d1fa455ded64d5b86f303f9601a85b08ccdb313c4f6b1a010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000948ee778b8ce0aeed5bbbe8c449f7801a27efa67adecb66470d0dd53a7fe6a6e0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000002addf696d5a42b0a3dada689731e00c991db936909df869ac6600662abc353100100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d07401000000000000005ead982fe12649ace29269eddedca2d53d158903191b650c7d88837490857d54010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e453dc2fc07cd1ecb220d1aad669e72554850f454c184daf87a4df5710a5e54e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c010000000000000090708d1a49ef0acfea32147a109d08d9aa15ee975b5237d56ca9b8e324108d0f0100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b01000000000000003ea11ef023f2b1b5020ab780be800bc7c185f385a4038e8464190ca969b18145010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede1270201000000000000004ce4e086b9782dfddcb793a3efd7cf37db624c0f8274b1fc36f0802d5455386d0100000000000000aa7e2ba0ac23106e76a0efad2d34747769f669773802cc4de44aacd6bd3e3b78010000000000000058ca41f3fb960be9f54fcbfba3961d37709552b4b248bcd1f7f820ae3aaabc07010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e7901000000000000005c0419f37036f2bf999f3958b49f63ab19d6dc19847a393dfd26cf303fc8d911010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000be03fe6bc03a7884524047567a8ccf43b3c988bf3b447ca9e1520d1c1f83c5390100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000980a1f19be33b36426340ca085bc454b7db2c34735930978808f54f8f266d62301000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de3801000000000000001a3ea41fd7c529d6705daa42454e73fb5094a0ecaf6ebb4f0ee07c044b70ba6b01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c01000000000000004e047857f2ec0c7cf295a0673fcc750d4c268cf852711196c4f05bd9dc6414260100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f490100000000000000d6acabff06fe9a6ccf02f780f33902672fae0f038d8e19ee234ce28a0b6a01410100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c020110100000000000000e6685fc6efa22c5967c0e2f135a1144f5f9d8f44cafc6a22cd3f26101d62be7001000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003e8394db87d36ddce56bfe0b86922dcc9a86d1ba061600e22d9694027b18c84001000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000044f8580dad3559a76d0b66af3ddddd0dfbf32c9e4dfa034b318ae6157d9f6544010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000f8d6513eb59b70d39f6748b94bca4d79f037d5550ffcbdd353811e0924a196280100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000fea502b0ab1db6f349056e0cdff4dfe1546a462de207c6705120e2def4275478010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c12101000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d9331930010000000000000090ca49ab72ebc4074739e7775abdc881b926b0119b0900c624e8528cee42674701000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc50010000000000000026fa6b3ccef89437308d6c893173c45de62e3c2cca8b6a67ad951ef8127792240100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000008c1548bb1c08a22a73fc056e7e8c66d8110ef5e6803c1d3a0b2c860f864d4d2101000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000245a9f1c784e83aa6e1a22b7a560de42348ae1c3402060929d669f110da1b74901000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c600100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000ae91c31922f356569c76a9cd203ba71b3eadedac2d8d001feebf43a39ccd10370100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe4201000000000000005258f48e31bc89f5d53ea6a12eea9698f8e72c6068ac1588100d8632bc674d1e0100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e0100000000000000f8b6f6a5dc53fb46ac77e802b719f037236dabeab361d78baabcee785d9fbd07010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000188d1a45dca0c370ba6b7952ba682570fd4f61501c4dea9826a981374a3f815f01000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f01000000000000005e127fe875a9c6396693b778833a710b0426a4fc0af4af490e7ff0a6f3e8b61f0100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de320100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a01000000000000008e3509e2bcb4497b4bd7b09dbc1d5647212386afc663222f97602067211607160100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c871601000000000000007836067da2bc290dc3c428c548a4dbebfdeddbc10a2db206abb6ac11741dc63e01000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d6843790100000000000000369a7419ed7884aecd3cda7ec3576942cacde7a9b8f2fe9a1115be827e2ba83b010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad2102010000000000000092006149452119964a75232851f01361608dc0a52031f240e93e70e98a3ff2190100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f42236010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c0001000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000070e54b2c7a73f6cfde74a42ae128dfe036709c0b2330a37098d3d9965fe3810301000000000000000abc8efdf09139f1ab9a05ed08b53892f8b9505d299f20c7455539579c2dce690100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008859563f3d771b1ca9e5afb70b9c760158a970bf9767060c34af3eb32354ba5d0100000000000000ea91265245370af168ddb825e2429a9b0e9618d5d96444c2dc2764b1b7b0bb4a0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000dced6077bbdb28a009e6a4c4d42cbd7637f4c258e54f788958428ca288f3ca2f0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5205320, - "finalizedBlockHeader": "0x688e6f3ffca7c7027f65f2070fa7659b77a7b9245c66214a778ec2ebb648231c9e76f8048580b47f2351a4060d3fd4bcac9623041e8285d75b9c509188a9f3dd17800b39528f787644e3ff33ae02cf934c659d80f187ff646dd7f404524a0a421e076ab50c0642414245b5010310010000816e0c1100000000fcb8d2a7f5d3a6bf45268fa2d40f179a4b6a38e1b67ecb33bb32ef1f7f57097264dc141391c452b00b0b6460454528c0a8032adce527e00692f1e002c427a907dd5569835db1fea2e6adf232b75b30992d654acf12be21e00b563f8af889fe0b04424545468403c3cc9e492d7bcb358d0f14870755b77b05b1dd32607659f1a97a3bff0ef0257505424142450101ac6c76e9d4372d206bbd4121db88bdc37df788d494bb92788cc81e4ea3b01b3a71c02a94857119cf2bf4dc0939af2a98aff5757e1c22a53a4b05108ca033448f", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000001bae9b223279cf7f43805d7158bc4a31a981be184f969784091af289f854a0a80100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000fe5f4f4b0b7e9232250a6b1cb8cd1375849a10e4db4d8f6a50064c576d8820560100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f42010000000000000057c55b2bbb6b86d6e9aedef9b51904ec5b29d8c1271308aa625fa445532738320100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b280100000000000000bd26ab1d5334c20a4a6840be7bab84b98aec00f0d49eeac5b2c93f4db06dcb850100000000000000bc08c197f7281aebdbd1dad6c2b02a6831ee8b5320745f9be57eb2a1f1b0fa9f0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000cd5ff80f07fb7c283714e62abd9b5dd07848aeab04c2ba862fcb04f6c3857dcb0100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000f151ff04cc1a5380cb00ac1e4dfc46abc031c4450877a4db963bb3522ab51aab010000000000000032b5e70f48897c333d520934f656ac3cafc040ebb356eee1b9081179d99abf990100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b290010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000065dc7fefab39364b5669a360cfd3576a24742b82c646f97d0fc49386de6e0a410100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca6101000000000000000f42866aa6927f1c5916a8a1a5a5cba2d88e1fff957d80df701617d93ee640780100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa20100000000000000158c1da8710a8c30ffe6e065fa9a0170dccc037c65aeebd4be7d6b9b860da1b501000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000e3f09f7a456cd9ee21588eab7ede2316e7af866ba31d5a3e7e3f7bcf40f802a301000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd310100000000000000214ce2bd2912889eca3c69f45a3677989d66e20c3b26a52bbd378a4a71f5aa05010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf20100000000000000496db58682384b87786aa7ee065fda7c786c8a5401f1969539a4f48a90d164e5010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b0100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000002ff3e4c0ea1f1af0a6ee4a8fc30a57e51c83a4a4ef8794fc5988dea435416d070100000000000000e0fc24bd5365279a1f16e02846535936fef8ba8a1d0be2ffa544b7f1773874df01000000000000009b11703e71109c2f7e5d5ed6780e867236062929da90c70ea616af2e99e80f2d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000600e433183aa04247203b358cbdb99116a3c5d6a3c4b2692487a2b3791de004d010000000000000027791275ae7d4735aa45e70210663067f7d268aa57126a26044c8f6d8572a7d80100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000a9f24f0208a21e8cda4e450c72074f20d76a927bb80fa4418e480e0b59575c6b0100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe979470100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000014c2a4269fbc00ac1412c8c73abe05c3030e5ed59f4dcda799bb6e2d12d0ffdb010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000002626d4e6ea5ea56e0d4d6c00064778956aef2ff2e560080f27f180c97d41bf3001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000e5df12b672ff723fb3a00817d48fa27843bc7854328dfed88bb0e4afed20b65a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000c07fcee8eace03cf683fc1c03d8398ac9cb79217519302556b8f19dc8446680d01000000000000007c6dcd08a7dae2fed7a44e3ef208d86e2a4c41694f0154d0e1194fa3644ad96401000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000068f2c90b93ba6130eb3a03f568411a471d0710086a468f8cba32b34e37411dd0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a190010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f6490001000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000a81425a86503d911cf060b51310f0bb796f5ce2cb656e524d23f7fac3c9c48000100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000055ca63358082034ddaf76b75f41a396081dd4f39a61eff13f7575e506e10335601000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000060f9c98c895b147d505fab521116929a6978af9443f7e4bfc114bce44480ec20010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab601000000000000000228d7fc42b304906518cbd91d73a5384c4893de6cbfe1e7346999df642d3d000100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000067d38381d74d8575dcffc6e3340bc47241ef2ea177f66ed738a417ab1dd459301000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000f3e3c09e028fa2d5fdeeba91ab0f427d48fa60a1eacf2b97bd62753c53bd0e5601000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000a40fdf74bca48725a5ca54a379b6c9124f81a06b2e728746b09f3a27b3b3bf040100000000000000b9f54ca6fa0be84b1c7b42a426f37cb4218cc7840b9e1aea647e215739cf19540100000000000000cdf28bc59aab771bc1450c9fa1b61f67c276511223a2aba191c33ebf017d91190100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd010000000000000051f30c189018e3ea45d60393bfd4e7e690bae78908458616537a362329a4309c0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b49727292401000000000000008eb93e87e10f3f22cea9599a134ccf40eb28e7ffa3124b1616408bbf7418ac9e0100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000ff5d4070a8a7798cd22dbc7a7e2a909b697e738683e701aeff696af26ebff07201000000000000005667d5ab2b7b56ad406d51dc657f573e65bc1fa542fc3ff43793a487af92aab601000000000000002cb6878926a8f7dcef3835911a687e37dd680dd9589f96f0cd45b1c1b429d02c01000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa064901000000000000008118d80425d3b1fb332be3b1d02e6456b8ff7fa7414ef940c36c1e8e3262766b0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000572538d1aaea11c9979bf074e0723ba0228690aa9ee8aa0b81db32aabfd822de010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe6626860100000000000000e09d677a7d9eaa0c82aeaab90dee017ff8b9fdf058c6896d173ab29f4ed24d8001000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad10100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000009e4dc072780c293ebda8107e014d03b3dea3d3f14bc9d02cb0c9c0776ce63b990100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab4010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000ca6dec12aaf7e9c1bbb5e611efe9f447ea489b08db6145681b9e499dd6a26b400100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac965901000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c3150e4ca47e7bc6486f198bf0a742a18ab0871bb1efa34e82c4ce81f27926670100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a00100000000000000b0f92a6bf11a029ed8c72697894b86d9fb4d16cded7274e9046946c607fc2ad201000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e853010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000193dfdde1c1e8f0d91530a15b8eab00e255cc2dd6b19e689868120922f79a5bb0100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000d227434a77cd7b7127c039eb9995aeb025a242c36ca7116372c7c8fe5bc921b50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d010000000000000000132d9e682cf8d45ce8efd4bef165a26da5d1349ea1fe9f51abd6dc7622720201000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc1890100000000000000a54cf1007cb124c12d4fe9c27e1d9aa2c4a238f35be9d6ef4c321f061039ea3f01000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a02401000000000000001773a9984bd619d4469608aeeb38a98e688474cf0870a45ced8d297ba56275be0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e70100000000000000be223d49fdccd102646c9b0d62130fbc8e7f0324d55a3eabaaffb5ed1616795a010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b1901000000000000002d12330b8029ef13e02675c6df0e10c6fdbc10e974803730866e603305ff4471010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d499301000000000000000f19c3ed807ad5f2b7546f5e6c5e9bb934835d54ed1f4f989540b86a2ca02b5501000000000000006a536f056479ef8f567471f1859757e3bb6284d4ce04319356eb2d6f5de119710100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000e7931a825260ba7d4fdb5f4990d39a71e2a8b215a776ebf770102ca772f103a3010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000eaaf51c4db0ac374aee2c43ce34866dbce4db52f43096392566898f8570d988f0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd0301000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000ee47e05a65a6174fe68fe813b92c23422c44e3e9109fea3724b2c875b91bb6180100000000000000b14d7eb2d5f956e23a7407b7cc5ba971171d0ac45169351ccc6f836c9ae796730100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b01000000000000008a90ddd7f17b99d595a1ce01de26ccc4f6e6a3783cbe11dfaffe491fca97aaf601000000000000006141751a8e08858eaa5e3f0b3472244f90d23eb3094dcaad05fe82e592d05848010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d5501000000000000003e8b4d65acf5a80cf03df3c089985dd8b95213ab54e7a6b1bedd92eb2a32a71c0100000000000000b81e2a5195eab7b9a47cdaaed0a248c06c9517546792da63c48abeae8b6a1ce20100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b01000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff274010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000d7070000000000000001a71d3e01005d1f00000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01" + "babeEpochChanges": "0x047ce796ef86d2d2fc832665ff80434f1bc3a62259a4170502310bd68cb8a1473dcaaf4501013314141100000000931d14110000000004c07b3af23720e4111ba831b9769b49f71185d8114af5aa6178fe9368e9dbf2bd1db9450101931d141100000000f32614110000000008196a5bceb8a6f221ee255bcfc5da82b3d945f56ee336cb099346d37c4e78fd4c70c2450101f3261411000000005330141100000000004808b35f79df5a82b6ed566e01ef5919038dc3d1f42c83b9170dfff57f0899f270c2450101f3261411000000005330141100000000000010196a5bceb8a6f221ee255bcfc5da82b3d945f56ee336cb099346d37c4e78fd4c70c2450101e922000000000000f3261411000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000862953391e72158890857d5ab745e1ddb7237d9417cb899b7ea56166e1a1d94c010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a42010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b06701000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000024c1be9d55af8a069eab1a11a97d6f3610cbf1b13b815eeef922506110bf60301000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b01000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc34010000000000000044920a50a8d83e0102c39bf84a36c18fb1a32160bffbdf5e1ccfebd7182bd95b0100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c240100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb05010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac600100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000005ad7e77053b21db02a81dd2e2cb62032afacc92299b186b96b2d257cde2d5a080100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000060bae0487cc202c7c5190fbcb6482e79b4aa63649660eacee791a2a306a0d8590100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000005e2a19c552438b09e112dfc997cc80a55a3a47dfe7426fde9ba546cab29cd62e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008419f256a17597af3f63e48513b78ab030cebe15c13c0fe29bf9170fac01c8700100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000021e899160a0153ba0f8af3a056243aab67ca87b0bb8616467898ae2a20b31afd01000000000000000400000000000000024808b35f79df5a82b6ed566e01ef5919038dc3d1f42c83b9170dfff57f0899f270c2450101e922000000000000f3261411000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000862953391e72158890857d5ab745e1ddb7237d9417cb899b7ea56166e1a1d94c010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a42010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b06701000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000024c1be9d55af8a069eab1a11a97d6f3610cbf1b13b815eeef922506110bf60301000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b01000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc34010000000000000044920a50a8d83e0102c39bf84a36c18fb1a32160bffbdf5e1ccfebd7182bd95b0100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c240100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb05010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac600100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000005ad7e77053b21db02a81dd2e2cb62032afacc92299b186b96b2d257cde2d5a080100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000060bae0487cc202c7c5190fbcb6482e79b4aa63649660eacee791a2a306a0d8590100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000005e2a19c552438b09e112dfc997cc80a55a3a47dfe7426fde9ba546cab29cd62e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008419f256a17597af3f63e48513b78ab030cebe15c13c0fe29bf9170fac01c8700100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000021e899160a0153ba0f8af3a056243aab67ca87b0bb8616467898ae2a20b31afd01000000000000000400000000000000027ce796ef86d2d2fc832665ff80434f1bc3a62259a4170502310bd68cb8a1473dcaaf450101e72200000000000033141411000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000862953391e72158890857d5ab745e1ddb7237d9417cb899b7ea56166e1a1d94c010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a42010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b06701000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000024c1be9d55af8a069eab1a11a97d6f3610cbf1b13b815eeef922506110bf60301000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b01000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc34010000000000000044920a50a8d83e0102c39bf84a36c18fb1a32160bffbdf5e1ccfebd7182bd95b0100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c240100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb05010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac600100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000005ad7e77053b21db02a81dd2e2cb62032afacc92299b186b96b2d257cde2d5a080100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000060bae0487cc202c7c5190fbcb6482e79b4aa63649660eacee791a2a306a0d8590100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000005e2a19c552438b09e112dfc997cc80a55a3a47dfe7426fde9ba546cab29cd62e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008419f256a17597af3f63e48513b78ab030cebe15c13c0fe29bf9170fac01c8700100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000001bee692e5cea7883a6da32a9dcba89ae6d425890b33bcbedbbaa5dda25a801d30100000000000000040000000000000002c07b3af23720e4111ba831b9769b49f71185d8114af5aa6178fe9368e9dbf2bd1db9450101e822000000000000931d1411000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000862953391e72158890857d5ab745e1ddb7237d9417cb899b7ea56166e1a1d94c010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a42010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b06701000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000024c1be9d55af8a069eab1a11a97d6f3610cbf1b13b815eeef922506110bf60301000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b01000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc34010000000000000044920a50a8d83e0102c39bf84a36c18fb1a32160bffbdf5e1ccfebd7182bd95b0100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c240100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb05010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac600100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000005ad7e77053b21db02a81dd2e2cb62032afacc92299b186b96b2d257cde2d5a080100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000060bae0487cc202c7c5190fbcb6482e79b4aa63649660eacee791a2a306a0d8590100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000005e2a19c552438b09e112dfc997cc80a55a3a47dfe7426fde9ba546cab29cd62e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008419f256a17597af3f63e48513b78ab030cebe15c13c0fe29bf9170fac01c8700100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000006cc196b9e0d51b933de4cccb6e9df2f52bba9a9225bca4d89d3ad283f550777a0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5330449, + "finalizedBlockHeader": "0x727e00e45d9815c73947be546630e81ae99e930d4cd5a2382c229e197c329aafde101705c90444c3b0418c8d449d9bce38c15476a07a06829bbae1ee8a6e028b46ba29a0087e3808566b30ab50fdc609fcd100eb8a6402e8ef0e751f4b9da67a841551580c0642414245b501015d0000005d1f141100000000bafcd3e4046b8fa5c659cee5b382792b38add18faa8417172433b746ff6a102c4e7df18dc29c5f5cbaa8ce5c6e7f3c36d0ce72ea3a068cdbfa21cd3aab03bc00991758ee0d255eadf5f298dccd31c8ac5fb3dbe9e0b661ebd3b591b119b85605044245454684035de0a328d0be8479bbe85fd0e1101f76889cecdb9433f2d5e2b7ba73ab326add05424142450101984d9d953fbcaac2c549d869a0cdfec0b72d465b0eb3a273e2d397cbab5b2808011634c7853afc240679bb85e7d4181bbba96bfbe7fd04944ab042a6a935138f", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000001bae9b223279cf7f43805d7158bc4a31a981be184f969784091af289f854a0a80100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec801000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000907fc1295e137738f8862d34490ad0746b80926e236e05ef8b958084f1d91a850100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000bd26ab1d5334c20a4a6840be7bab84b98aec00f0d49eeac5b2c93f4db06dcb850100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000f151ff04cc1a5380cb00ac1e4dfc46abc031c4450877a4db963bb3522ab51aab01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b89222010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000799363fc98b936b54755c8532ae88418a28c3ba30666e6e68dd57dd0ad80c00d0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec00100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b5801000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000600e433183aa04247203b358cbdb99116a3c5d6a3c4b2692487a2b3791de004d0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe9794701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd01000000000000005566b715a9b242296b7580227095f267f07c33d5a6e9a878010bb6971bf1ff1e010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000d50555d709e293864d91ca77494a0424d842151c92d74f8ee08b52d65d11cddb0100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000158d9d1e1a7f91763f24ded661296c67d3351b345ee631a41486626e9354e4910100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000f174f78ebad0cfa91c428395afbad3e448bd958d10481a6a439028ea7d95b3d701000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000068f2c90b93ba6130eb3a03f568411a471d0710086a468f8cba32b34e37411dd0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000fd3d1c4982441db21060e8834c5ccb6331e81fbfa01756770dfe297d5038ac950100000000000000487da9661496aad61869534fe7397d6b1aa1786f4d587137005c0e7b4dc4c1cb0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a190010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003db5f801c2e208df9a9b55c5f2d459ee2c3dc9fb94e208695f2ee4025f4bed4f010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000067d38381d74d8575dcffc6e3340bc47241ef2ea177f66ed738a417ab1dd459301000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed010000000000000044715c3a912a898d9719750da1ab8dee74bad9256cc4f3922b53d2ee964acd200100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000b9f54ca6fa0be84b1c7b42a426f37cb4218cc7840b9e1aea647e215739cf19540100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd01000000000000005c3476954f173e1be823259907f3fd4bdb2b534d090ea5b7b2b3ac03403a80820100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000e423f5f90b85ef7d83f4c34b035abb61976a678b643d244a1242f239e3e6712201000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000001de97cc443740a0e0e0fdf166ef4515c387fec450fc4d4e141cebb41e1b7f8e90100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf70158600100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d060100000000000000c9c3952008fa118083591bd0647a97b3f3f531b5ccc10d21430724a4d6bba7230100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab401000000000000006932c28b248d36d9b3fec965a75b6e0ee0e10a7835eb874aa52ba747c492d05d010000000000000002246d9cae89005f399a6a68cd771ad53b52c5d557c17716b873fd42260e4f7b010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace10100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a8abb971b10439867351b3b23ad968edebee7dc255f0414cd20c60507909861a0100000000000000d36e255c71bbe47ef2eeec8e6182066fbeed17183ceef7c10eca89a3041d49dc01000000000000004e9fa37851f580bbd096fc81f5aa28df78d0c8f0f70963121785cd5095a8d9630100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac965901000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb01000000000000000c802c4d0fda23bc38f40210827903d520a0a4cf44ae4da7fb36ff933188faae010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000c696ade13ebfca6231299b7a3c0aede6830ec7b3533dc1d3ca9f46bf909f71d20100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a6010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f01000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000d4c8bb768da36c14fb8dca7cbfad9334c2cded80354a7e796b2ec006a225e3a8010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a88281901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000004655b8a8e7f4e3532b7aa5e461d25ca6d5af49e0557da59654d15fe1d1eda4c010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c010000000000000000ee1fc07e5a1fb79caae4187100b34b664bae76f42b552cbe8c96bfe6eca844010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000a7254986c00f94b1ced526583ce2ffc0e853afd27a8e90cd57178a328e6338660100000000000000ee47e05a65a6174fe68fe813b92c23422c44e3e9109fea3724b2c875b91bb6180100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa347010000000000000078a2957fa87dcd755360693156976dc31d1ca27a869e032fb1a2d46ae06fd8d10100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000068f911f5ffd2e94be67762e2eb02e792b79ac8983720f40615e27ad203e03c50100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b01000000000000003df78462f1c2d8b9e284cb16ec39beca0944049a267929f48e97b5bbe34211130100000000000000280084dd48c4c3ebf743e3a8448e2815fcf183dfd0121c19453278da053c20a301000000000000000ea1cd7154cd4d50d009d8db3d6d40897d9170ff97e6493c8d0dd2ca7458230701000000000000004d1ce79ea3e280f3466a03c32d30965034aa9e5db1e63d92ac30ac3573687a730100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a401000000000000009d56cbbe3020b94ea8cb122df6527ceecc8cade4632e81f23b485e773d27b58c01000000000000004b23879e03800309dac504a22712a2b8410d1d66d4a63e9fcbded79635f0bf3c010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d55010000000000000081b1eff37055bb1eb054e667ff1c7318e6acd21f9a3a3ddd46f1c9a1ed65387b0100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006b637efb1db7c91b689a3dc0a5e42b0f528e5f31d55b1c264452dda3aa2d83d9010000000000000097485aff1573c42971da2d363dd00e29dd61c8e285d100ace0347bfdb6b5981701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000001308000000000000000137c44501004d2000000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf4501" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index e794ea4cd82d2c9f6a3d3390193e155eba95580f..10690ffd9d58d49ab2f6c9469858c22fb85604bc 100644 GIT binary patch delta 17064 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 diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index f0053716d6bdf21fb6bf46a4fc779f7d82b4212a..1797e90554803b50ee7ab1ec097313c5829b27b2 100644 GIT binary patch delta 10489 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 LC**<@9Yp>IzrsZi delta 9024 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 diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index b46836dcb6b2b3da912bef625179de61fd15edda..c5b8fe6146e4b0c249f8cae6150adf6d475c2563 100644 GIT binary patch delta 10517 zcmd5?4_H*!mB07BH#q1JA@Wy11{h$FKl0ZAf{F-=5fK3mCWeeNPkHP7f%${dgb=>g zY;B7Pxuq5pO-xFnO^6ce8j_mCHny>;F?MScn%GFUZezD5aW^LGHm3dE_Xc4g+1>B! zZg;IF27H1mEecl$A8wB;rR;R`5bIX}5H+Igf-at-e zU&zVoayS(4%+fFCwU|&s!r04k>BFza{)u+!i`*_Ne$8&5)2le-oLaZCRdH5W>~`5r zXn3@z!{e155-FzCyTxsB$jut0q(s9kU8fN)CWORkAdf`KfZfV@c$=+0kJsgB#+<;{ zGfqY_$kMeIcbCQ5VgXnqlt?+H(2Cm+^%LEo$s?xQtd6xRUx`#xy3#+!4y)q^l9hz6 zcPTcB)KFSZJ+ggENr|Vm+0v>sw}*z?R=dw8dz!7TE~m%q_F28-(=RCr#3?D6 z+1%XfR@yCIxuk^iB@%%y3x9Yl~@}WxIbargE#*1>IEJD4~YX zbuO0|DvIXIDnmL#IYO6)fkg>j<8sPGAW&WSlr=GLb+yZGr^RWN{?$WIpxrb z;&N(ziI`V|UeRsv86>mbf%R%oT3a!;o|u*? zTm7A2l2hNs|EzBXC;U5;6x7Hz#pf6Y%pzu>kM|5@`Gyw7E87)Vq|I-kA!PN$Y^t4# zSHVho$W0{94<@t8@(GN}9T3CoA)$U?m#T#t3plzxB#abIpyn>OILXbEA$c4!XEG$8 zL&7IR3OFQUGNh10A}2!@a!8a4>GH3`EgTd*8L5avVkSe1Ib<$@kA&J=UG{Ajo9l+% zHcvQBv}PjFnuXjj3CRR^)BH*zm6S&FZgr3i#z89COYtR}tEs^};ZIZP^#-_}L>{5W z)h?@rn+6Dt>ts)>%juB=|3HYTq53#@oz>-*Rd?iJr;c5VcbFO}T`F5`9>l&IA&%R9 zBQV5rFx8VLHk2I0LZ7>d4b59CY@+OJe>96tC`+~gXNF#;M5c!5&5E~OwuZahu$|D= zp3OOYDvC<_O3Y2{yZckA0~5<&A14@vHjPQPF^l@x9mX`;$-ZXHpu5-+V+!qMzcN+{ zKFZ!}%wcO1XGC;BKkH>{X#=8K2gVf4q*MJjqMJ(f1TkReB#dr$II$q2k`g^Nxn--; zs>n_+RIIPIG2;`)+?||5Hzm8M6kXfORVPUev9(-RU}?{YwgJwU|Oqe|^fN`PQo z{+E+tgg!2R4EwjFEKDjfxhk@s(xUa)S!@=s%Uuos*+EFZHp#x^Sh^2-D5D41hsks4 zAvV)wru{76lmp06auU1WR1rQvX#t$q#yQ9>YEtk~KE)AAMp$WTAwAC47Np}|zHvV8_Kiz~ z^OS|Iied?AMgW$k)!_ch<_Na(_DDL!nr}DJ%Ph>A%D#Vlh;W4tkKFzcrB~U|CNn#e zUaGb#fVXyj650ncB3Ra)dT{8SpXcvCSfpq7-^qC$E=u#metl;w`gIw#YQIW2N!h){ zv6QmC#RXjW3(d)V?93u?N+^k9hcmm-3d@cNt?}8tO1Z})BT!(ePq4AY;lU^P3{O&W zlC@=}CZD1-PQ|FUA-HexIZsoXS>VpwJg*78LBqVvqcM1A?Z(+CJSSf zzb;4>p!t}*RrCt8J$xX{P)62Skl z718t>`zS90cMhGKZ@PKfw6C+Z`H}Rxig0)S0)Yzbnf#&{onSCvPu92Rt5GAA2Wzg% zV3u7S8ypO87eWLQ!fGwqLYTnn3e5bmFEyP%92@7c52}qcoy}gALF-spVIBvUr^T|n z3Uhh$#OC=h#WSl+LZiUWItuBP;fz})%I4jYPMerzZ3NqNOSG^_V2K&w%;_?)-J8SM zAJZe*E31PwFrteb2_9EgCux8Pc9$%1-bF>r#wi~xnkVQ4cBCjZkm#k>4F52HZq?IG z?7l7YX$DY@mtYUlo}me1SEm zus)_rqz)sYLv)WZLfGVph za35Ti2v$>k$4n9N{eFXpf2V5&?l0Ex4HO=N_D8M=ZI~rRi=;tV25Y+$Ue+2WI8+C@ zfzEwHW5s=AkY%n(q1`OIEz0j3KJH0YA?N zlnj>OZGu?bBf8n~xE?)RcYR3m&Z*9@YpOHsRB_MM#~_9Hu)aF7=ZhSoM@5nwY6G02mtAeh*0lM? z(%30((Kq21v`@9}e!q1em}K4k%(Olqd;GX{^HweT-_0H% z`g_eL;kdx=%De>~fA%1p5}2G<7IXSWbO_x1&Z@3^mQVGZK+gS7ZGISbIP+HV|IO}q zTJvx`{ttG)Q8h@OS2cZ}YkEu|V}E^+)O4KoH;a;^nhx>!n?=csEV?}*0~=LldwxlY z8U~QtibTJ@0H+-eE|>tLd~u0wZeM1&Ea1=+zD03+yjR$f_H5*lN7_?Ga#>&>#w4=z z?Keez;dzf-VQaRRhJoBb&05vUfkV?(_VD)1(94KL6GuaGmA$pS3Q6d^9cyrR>_|tx zxo1am<#oQkR3x~N73f4W(V-;*iX&vOI60+|rezeo07FQK$VPXhCxnT#z+c9y_qtIw zA=IQeTJ6nF)Vsn&me{dTh!9z4N9p1)451T9geVy*T-*6ME=ELRiyKjILcB1-JOG6g|~w5$)JsDtM;BWWRV=! zdruOw6W)5`p46EZks2!97D6n;pWidYvy3A>mDn};|Dn5$*j;mXujy(N_5Ok%FKFVB zXlZW2DY04J;gy{p9AcMOw8++NHU2;O2@>jnkTlfcvdKP?hSuOoi0{8*q~TG$ak=8L zY_`k1CJ|?-bZTuZQwO_mcRWt)`*-t={@m`wh@B!%zu3YnckuP{C{}Fa-E7taO|f+} zoC7Ts3Pafntaft6c8g>e>v~{SQ4b7bo$SF8Pmjgx6{SkrCsMt>cAG?cfk_B-Nh%_9#2GVpgbYZ*d)kc$%KWWloVp3&v-wavEm9Yd9woTtvX%quc^mBMYT^mi1tEE;%2tN@D>QGzOw^oA+DLm`eXC zTSzam>~F`?lWf(u=V=QL$o_9{riG05#oSaVz^D0Sc$x4LGxw$6b~!-$OE85grL;>J z4$@xP7-^)FIBvbw5skq;Y|M>LoAi(%0}ll zr)#^j0WWVnuo+$i#UR&#|7(FtEC*y+d)5d#iFNKV3BeM3Vo!Qrup}9mq5dw{SX%Yc zt@Ip~)>AV)E(A`e-h?o?B|3c5Fp~(0eZHqITqn_-YG(^CvwN2#`eJ|KBP6n~eRpAQ zyfitAB}$X$mB`upql)zXzm_&3+_yei`JR@R{=I`*JzPgG$Raw)RKnuG0#sgc_|byPX$1E3puM z|E%zXs%?n>l>xk~r}M7XcvrKrLow`|`$O30k0b~++DNzTixTSmbKGabp4+o88P$oQ zeF`?y*!_#KDJCXI3Z&6boG&zK*l+J&#Oj||#u^{Z!I}I1NAK7q2gspJmqXFy;15Y} zk+AnW0!Z4XleB3hZQ7U{9?MeoIhQ^9SO`i2IX{S=MSMUJIwaDe;k^Ht89Qd!f#`X? zlp0sc7Mo^7-4ZobpepY#8P~8C2TcDx#K*@G6aO=gaM4apg6PLheknIR9xHTfz;8Vs znZ9$1LsW8y*d@UudNBur77=<-4VTnJ=;GtI-^}4cA2ww?C4D83S=&<;tnZ2SC}{uj ziS<=SC3=^-*YRNI^U8Srg}0XQoO&5=-41Z_0g2!Od8c$pBDfI4B!UZ|emaCBuqNSS z-%CO+^yBX(n-siYyisDGNJufmqnvs~A|o0}(m)!leAU2090t1wmPQ@tf1g0*m@_w= zl=`WH!m)Z#26=K^eGbh?d<0v~)vH9kLhDjlVT-#m2(MZx&sBAUXsAIzp>?8$>^^b&jH;LnBg zDq@ydwFKFQbc#o(e!du=VJ&h+t(vwTt~JI*xhRo~u>KXoC6&-Rg|J2fAp!>vArq9B z1Eh9L-)3O_YM|yLT$KnesLU`xuSw*ZHk0GuH>vT&#Dbol<8Li~+RT3U>@s%n>EuM6 z4$GwGg0j_z_`qLmIUux72bRG)6rGP8jsa#Ui+HA22+^^F&!En%WB>R}Ht(tLmIl)} zgg5UPOpA!%lrcJjOA{tuN8(j3ou**+!eF$JsAInz%FRnrGGCk-YPW2WQP#gz zaoPw;)CI=;8(K{POTuqLx{lydjqfv(rJEcVb9K}9vs|D;Q@Og()i>V#wX)-f4Xo$c zT%l0MUU}A(UL3%sY&w@RjY}EklEw-Sryz)LJZ#1R;H!r-(LQqcL)3R4JA%YkM{O+O zxk&blBT)#0e>h@6a9cf;q=vyLcK=W~!s5e23vsIW#SjmdoZ-CZa*T<7t675usOHnG z(Ggs#*VgIq3XmiAJ-2>-V}Ptp(`9YaWNp%xC2Kfo(WU?r%XAWpM#3K`6T`A(v;;** zaJIp)L&HUI(?1OJYWeI(CW7b63dfY?>gKlGrh_f}z=5Degi5M*gbp3Sg#o%Hz&rV0 zh|b+?`SWSwPMw~86cf&_{a`-of~KPxUAy@Il#(9Z%+f4mUrujj+(dv_#qN1ILc{_WQ0FV`#58<+o;DWs7D>@Wdo_sL_FZAv> zp3JVkSb?Or_=h~Twf(RT^%D*q{b8CwgP3qUcRmf8ESN56TKLfgseOM*cDw4; zuS9CZkC&=Yd=_H$pML8^Ly-z=*x`pXiiR8&!ar;AD4r(Kq+!(HYaR7_tWBcHJkH%J z%i_nGYEL`yDI)!tt=S!uTJou#d?nM$kVnocJS~SZrGE?m*e8yj9WX_>a-eIQ!c5 z{!cgxX(;c$iGz8O5x7Pi3XL4XUOSmAjtJ+6KRD^2Gy18q0>I&|Kh2=n+SzN%@lN;c z*M5so{^F^hiQVEA_Vu5=A?l=^tm*Z?o7E|X@?wro!a3uO*Z&w1Bk8?6x<&J59K5%w zB_30}G<@dgPYX1c-F+rkNRimHXZ|eYO6>5PuZC7qv&G}_In?hMnxsv`Up!ufD1S68ST{^a~t3PUc|G0S^( zD4Pwx*M|Hl<-%HI9PJnE*y#T0LNNr5A1i`ro$R);AE6c%`&&=sC82bi+|i74q0D2P z%eAG4Gc5j(xdMCXcZIZf`0Ph}>G1Am{<`=5pUgU> z3s)(JbjOFcUHUo=0DS(3`$TCn&wODmXL?b>>yu+w@0HH!q*vM9pCq$8KA8&*ZU1C9 zlD@MaRSmEH^pYTrY0@|anlgOwvoL%WH~hkNBc&II-}yY5rgw`5yX-Vv)sf}cl2FY- zk)zp$s-9x^=ncLdUO&S1zBFp3m3`l&4Y*&R_X@#5$L^x^11g3Dl^?4U>20DE78F{? R+TIO6b|Q$zQ86Nj`~}H=Q!)Sm delta 8951 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 Oq$6LeX&MzKB=X;M405~x diff --git a/cli/src/commands/explore/mod.rs b/cli/src/commands/explore/mod.rs index 52d0da83f7..592428a150 100644 --- a/cli/src/commands/explore/mod.rs +++ b/cli/src/commands/explore/mod.rs @@ -327,6 +327,7 @@ pub mod tests { BeefyMmrApi BlockBuilder Core + DryRunApi GenesisBuilder GrandpaApi Metadata @@ -336,7 +337,6 @@ pub mod tests { SessionKeys TaggedTransactionQueue TransactionPaymentApi - XcmDryRunApi XcmPaymentApi "}; assert_eq!(output, expected_output); diff --git a/core/src/blocks/mod.rs b/core/src/blocks/mod.rs index 9ece750e81..8a66966c6a 100644 --- a/core/src/blocks/mod.rs +++ b/core/src/blocks/mod.rs @@ -32,9 +32,9 @@ //! //! // Some extrinsics we'd like to decode: //! let ext_bytes = vec![ -//! hex::decode("280402000bf18367a38e01").unwrap(), -//! hex::decode("c10184008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4801f4de97941fcc3f95c761cd58d480bb41ce64836850f51b6fcc7542e809eb0a346fe95eb1b72de542273d4f1b00b636eb025e2b0e98cc498a095e7ce48f3d4f82b501040000001848656c6c6f21").unwrap(), -//! hex::decode("5102840090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2201ac0c06f55cf3461067bbe48da16efbb50dfad555e2821ce20d37b2e42d6dcb439acd40f742b12ef00f8889944060b04373dc4d34a1992042fd269e8ec1e64a848502000004000090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2217000010632d5ec76b05").unwrap() +//! hex::decode("1004020000").unwrap(), +//! hex::decode("c10184001cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c01a27c400241aeafdea1871b32f1f01e92acd272ddfe6b2f8b73b64c606572a530c470a94ef654f7baa5828474754a1fe31b59f91f6bb5c2cd5a07c22d4b8b8387350100000000001448656c6c6f").unwrap(), +//! hex::decode("550284001cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c0144bb92734447c893ab16d520fae0d455257550efa28ee66bf6dc942cb8b00d5d2799b98bc2865d21812278a9a266acd7352f40742ff11a6ce1f400013961598485010000000400008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a481700505a4f7e9f4eb106").unwrap() //! ]; //! //! // Given some chain config and metadata, we know how to decode the bytes. diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index a024a0d396..6a1d761f05 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -78,7 +78,7 @@ pub mod api { pub static RUNTIME_APIS: [&str; 18usize] = [ "Core", "XcmPaymentApi", - "XcmDryRunApi", + "DryRunApi", "Metadata", "BlockBuilder", "TaggedTransactionQueue", @@ -127,8 +127,8 @@ pub mod api { pub fn xcm_payment_api(&self) -> xcm_payment_api::XcmPaymentApi { xcm_payment_api::XcmPaymentApi } - pub fn xcm_dry_run_api(&self) -> xcm_dry_run_api::XcmDryRunApi { - xcm_dry_run_api::XcmDryRunApi + pub fn dry_run_api(&self) -> dry_run_api::DryRunApi { + dry_run_api::DryRunApi } pub fn metadata(&self) -> metadata::Metadata { metadata::Metadata @@ -263,6 +263,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -272,7 +273,7 @@ pub mod api { pub struct Version {} pub mod execute_block { use super::runtime_types; - pub type Block = runtime_types :: sp_runtime :: generic :: block :: Block < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > > ; + pub type Block = runtime_types :: sp_runtime :: generic :: block :: Block < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash ,) > > ; pub mod output { use super::runtime_types; pub type Output = (); @@ -286,6 +287,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -312,6 +314,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -467,6 +470,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -478,7 +482,7 @@ pub mod api { } pub mod query_xcm_weight { use super::runtime_types; - pub type Message = runtime_types::xcm::VersionedXcm1; + pub type Message = runtime_types::xcm::VersionedXcm; pub mod output { use super::runtime_types; pub type Output = ::core::result::Result< @@ -495,6 +499,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -524,6 +529,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -537,7 +543,7 @@ pub mod api { pub mod query_delivery_fees { use super::runtime_types; pub type Destination = runtime_types::xcm::VersionedLocation; - pub type Message = runtime_types::xcm::VersionedXcm1; + pub type Message = runtime_types::xcm::VersionedXcm; pub mod output { use super::runtime_types; pub type Output = ::core::result::Result< @@ -554,6 +560,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -566,7 +573,7 @@ pub mod api { } } } - pub mod xcm_dry_run_api { + pub mod dry_run_api { use super::root_mod; use super::runtime_types; #[doc = " API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API."] @@ -575,27 +582,29 @@ pub mod api { #[doc = " If there's local execution, the location will be \"Here\"."] #[doc = " This vector can be used to calculate both execution and delivery fees."] #[doc = ""] - #[doc = " Extrinsics or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`."] + #[doc = " Calls or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`."] #[doc = " In those cases, there might still be a valid result, with the execution error inside it."] #[doc = " The only reasons why these calls might return an error are listed in the [`Error`] enum."] - pub struct XcmDryRunApi; - impl XcmDryRunApi { - #[doc = " Dry run extrinsic."] - pub fn dry_run_extrinsic( + pub struct DryRunApi; + impl DryRunApi { + #[doc = " Dry run call."] + pub fn dry_run_call( &self, - extrinsic: types::dry_run_extrinsic::Extrinsic, + origin: types::dry_run_call::Origin, + call: types::dry_run_call::Call, ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< - types::DryRunExtrinsic, - types::dry_run_extrinsic::output::Output, + types::DryRunCall, + types::dry_run_call::output::Output, > { ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( - "XcmDryRunApi", - "dry_run_extrinsic", - types::DryRunExtrinsic { extrinsic }, + "DryRunApi", + "dry_run_call", + types::DryRunCall { origin, call }, [ - 24u8, 53u8, 81u8, 162u8, 167u8, 91u8, 190u8, 223u8, 205u8, 65u8, 60u8, - 208u8, 121u8, 112u8, 128u8, 209u8, 131u8, 228u8, 187u8, 89u8, 8u8, - 183u8, 166u8, 44u8, 3u8, 82u8, 148u8, 237u8, 14u8, 89u8, 221u8, 150u8, + 255u8, 47u8, 199u8, 225u8, 178u8, 150u8, 182u8, 201u8, 229u8, 233u8, + 217u8, 99u8, 219u8, 10u8, 224u8, 250u8, 52u8, 253u8, 31u8, 105u8, + 105u8, 232u8, 15u8, 139u8, 92u8, 227u8, 11u8, 204u8, 229u8, 119u8, + 28u8, 192u8, ], ) } @@ -609,29 +618,35 @@ pub mod api { types::dry_run_xcm::output::Output, > { ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( - "XcmDryRunApi", + "DryRunApi", "dry_run_xcm", types::DryRunXcm { origin_location, xcm, }, [ - 149u8, 217u8, 21u8, 118u8, 78u8, 99u8, 117u8, 101u8, 189u8, 120u8, - 191u8, 244u8, 32u8, 19u8, 126u8, 221u8, 33u8, 192u8, 17u8, 199u8, - 147u8, 137u8, 70u8, 55u8, 17u8, 173u8, 189u8, 190u8, 137u8, 196u8, - 102u8, 59u8, + 169u8, 208u8, 155u8, 170u8, 219u8, 217u8, 203u8, 112u8, 72u8, 82u8, + 175u8, 97u8, 100u8, 90u8, 152u8, 69u8, 214u8, 123u8, 167u8, 162u8, + 163u8, 191u8, 159u8, 153u8, 250u8, 216u8, 53u8, 67u8, 0u8, 230u8, + 129u8, 83u8, ], ) } } pub mod types { use super::runtime_types; - pub mod dry_run_extrinsic { + pub mod dry_run_call { use super::runtime_types; - pub type Extrinsic = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > ; + pub type Origin = runtime_types::rococo_runtime::OriginCaller; + pub type Call = runtime_types::rococo_runtime::RuntimeCall; pub mod output { use super::runtime_types; - pub type Output = :: core :: result :: Result < runtime_types :: xcm_fee_payment_runtime_api :: dry_run :: ExtrinsicDryRunEffects < runtime_types :: rococo_runtime :: RuntimeEvent > , runtime_types :: xcm_fee_payment_runtime_api :: dry_run :: Error > ; + pub type Output = ::core::result::Result< + runtime_types::xcm_fee_payment_runtime_api::dry_run::CallDryRunEffects< + runtime_types::rococo_runtime::RuntimeEvent, + >, + runtime_types::xcm_fee_payment_runtime_api::dry_run::Error, + >; } } #[derive( @@ -642,19 +657,21 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct DryRunExtrinsic { - pub extrinsic: dry_run_extrinsic::Extrinsic, + pub struct DryRunCall { + pub origin: dry_run_call::Origin, + pub call: dry_run_call::Call, } pub mod dry_run_xcm { use super::runtime_types; pub type OriginLocation = runtime_types::xcm::VersionedLocation; - pub type Xcm = runtime_types::xcm::VersionedXcm2; + pub type Xcm = runtime_types::xcm::VersionedXcm; pub mod output { use super::runtime_types; pub type Output = ::core::result::Result< @@ -673,6 +690,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -771,6 +789,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -795,6 +814,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -820,6 +840,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -921,7 +942,7 @@ pub mod api { use super::runtime_types; pub mod apply_extrinsic { use super::runtime_types; - pub type Extrinsic = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > ; + pub type Extrinsic = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash ,) > ; pub mod output { use super::runtime_types; pub type Output = :: core :: result :: Result < :: core :: result :: Result < () , runtime_types :: sp_runtime :: DispatchError > , runtime_types :: sp_runtime :: transaction_validity :: TransactionValidityError > ; @@ -935,6 +956,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -961,6 +983,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -973,7 +996,7 @@ pub mod api { pub type Inherent = runtime_types::sp_inherents::InherentData; pub mod output { use super::runtime_types; - pub type Output = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > > ; + pub type Output = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash ,) > > ; } } #[derive( @@ -984,6 +1007,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -995,7 +1019,7 @@ pub mod api { } pub mod check_inherents { use super::runtime_types; - pub type Block = runtime_types :: sp_runtime :: generic :: block :: Block < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > > ; + pub type Block = runtime_types :: sp_runtime :: generic :: block :: Block < runtime_types :: sp_runtime :: generic :: header :: Header < :: core :: primitive :: u32 > , :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash ,) > > ; pub type Data = runtime_types::sp_inherents::InherentData; pub mod output { use super::runtime_types; @@ -1010,6 +1034,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1068,7 +1093,7 @@ pub mod api { use super::runtime_types; pub type Source = runtime_types::sp_runtime::transaction_validity::TransactionSource; - pub type Tx = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > ; + pub type Tx = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash ,) > ; pub type BlockHash = ::subxt::ext::subxt_core::utils::H256; pub mod output { use super::runtime_types; @@ -1083,6 +1108,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1141,6 +1167,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1816,6 +1843,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1847,6 +1875,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1874,6 +1903,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1904,6 +1934,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1932,6 +1963,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1962,6 +1994,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -1987,6 +2020,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2012,6 +2046,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2042,6 +2077,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2070,6 +2106,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2098,6 +2135,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2131,6 +2169,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2156,6 +2195,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2184,6 +2224,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2209,6 +2250,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2236,6 +2278,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2261,6 +2304,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2286,6 +2330,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2317,6 +2362,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2342,6 +2388,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2370,6 +2417,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2394,6 +2442,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2422,6 +2471,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2447,6 +2497,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2475,6 +2526,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2499,6 +2551,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2523,6 +2576,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2548,6 +2602,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2571,6 +2626,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2598,6 +2654,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2625,6 +2682,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2762,6 +2820,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2788,6 +2847,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2803,8 +2863,7 @@ pub mod api { runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, >; - pub type KeyOwnerProof = - runtime_types::sp_consensus_beefy::OpaqueKeyOwnershipProof; + pub type KeyOwnerProof = runtime_types::sp_runtime::OpaqueValue; pub mod output { use super::runtime_types; pub type Output = ::core::option::Option<()>; @@ -2818,6 +2877,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -2836,9 +2896,8 @@ pub mod api { pub type AuthorityId = runtime_types::sp_consensus_beefy::ecdsa_crypto::Public; pub mod output { use super::runtime_types; - pub type Output = ::core::option::Option< - runtime_types::sp_consensus_beefy::OpaqueKeyOwnershipProof, - >; + pub type Output = + ::core::option::Option; } } #[derive( @@ -2849,6 +2908,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3006,6 +3066,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3031,6 +3092,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3066,6 +3128,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3098,6 +3161,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3131,6 +3195,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3284,6 +3349,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3298,8 +3364,7 @@ pub mod api { ::subxt::ext::subxt_core::utils::H256, ::core::primitive::u32, >; - pub type KeyOwnerProof = - runtime_types::sp_consensus_grandpa::OpaqueKeyOwnershipProof; + pub type KeyOwnerProof = runtime_types::sp_runtime::OpaqueValue; pub mod output { use super::runtime_types; pub type Output = ::core::option::Option<()>; @@ -3313,6 +3378,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3331,9 +3397,8 @@ pub mod api { pub type AuthorityId = runtime_types::sp_consensus_grandpa::app::Public; pub mod output { use super::runtime_types; - pub type Output = ::core::option::Option< - runtime_types::sp_consensus_grandpa::OpaqueKeyOwnershipProof, - >; + pub type Output = + ::core::option::Option; } } #[derive( @@ -3344,6 +3409,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3369,6 +3435,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3538,6 +3605,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3560,6 +3628,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3582,6 +3651,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3604,6 +3674,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3630,6 +3701,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3664,6 +3736,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3725,6 +3798,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3809,6 +3883,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3840,6 +3915,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3896,6 +3972,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -3993,7 +4070,7 @@ pub mod api { use super::runtime_types; pub mod query_info { use super::runtime_types; - pub type Uxt = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > ; + pub type Uxt = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash ,) > ; pub type Len = ::core::primitive::u32; pub mod output { use super::runtime_types; @@ -4012,6 +4089,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4024,7 +4102,7 @@ pub mod api { } pub mod query_fee_details { use super::runtime_types; - pub type Uxt = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment ,) > ; + pub type Uxt = :: subxt :: ext :: subxt_core :: utils :: UncheckedExtrinsic < :: subxt :: ext :: subxt_core :: utils :: MultiAddress < :: subxt :: ext :: subxt_core :: utils :: AccountId32 , () > , runtime_types :: rococo_runtime :: RuntimeCall , runtime_types :: sp_runtime :: MultiSignature , (runtime_types :: frame_system :: extensions :: check_non_zero_sender :: CheckNonZeroSender , runtime_types :: frame_system :: extensions :: check_spec_version :: CheckSpecVersion , runtime_types :: frame_system :: extensions :: check_tx_version :: CheckTxVersion , runtime_types :: frame_system :: extensions :: check_genesis :: CheckGenesis , runtime_types :: frame_system :: extensions :: check_mortality :: CheckMortality , runtime_types :: frame_system :: extensions :: check_nonce :: CheckNonce , runtime_types :: frame_system :: extensions :: check_weight :: CheckWeight , runtime_types :: pallet_transaction_payment :: ChargeTransactionPayment , runtime_types :: frame_metadata_hash_extension :: CheckMetadataHash ,) > ; pub type Len = ::core::primitive::u32; pub mod output { use super::runtime_types; @@ -4042,6 +4120,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4068,6 +4147,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4093,6 +4173,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4167,6 +4248,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4191,6 +4273,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4311,6 +4394,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4339,6 +4423,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4365,6 +4450,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4855,9 +4941,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 70u8, 211u8, 173u8, 12u8, 184u8, 10u8, 108u8, 202u8, 14u8, 243u8, 236u8, 64u8, - 189u8, 194u8, 175u8, 206u8, 89u8, 19u8, 236u8, 197u8, 124u8, 189u8, 198u8, 124u8, - 203u8, 154u8, 6u8, 107u8, 195u8, 46u8, 97u8, 3u8, + 18u8, 54u8, 239u8, 2u8, 203u8, 152u8, 49u8, 128u8, 168u8, 211u8, 214u8, 17u8, 62u8, + 114u8, 67u8, 60u8, 101u8, 160u8, 181u8, 195u8, 240u8, 154u8, 244u8, 112u8, 191u8, + 44u8, 216u8, 158u8, 133u8, 76u8, 175u8, 235u8, ] } pub mod system { @@ -4881,6 +4967,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4910,6 +4997,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4936,6 +5024,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4963,6 +5052,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -4993,6 +5083,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -5022,6 +5113,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -5050,6 +5142,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -5082,6 +5175,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -5109,6 +5203,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -5138,6 +5233,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -5171,6 +5267,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -5439,6 +5536,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An extrinsic completed successfully."] @@ -5461,6 +5559,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An extrinsic failed."] @@ -5485,6 +5584,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "`:code` was updated."] @@ -5501,6 +5601,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A new account was created."] @@ -5523,6 +5624,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account was reaped."] @@ -5545,6 +5647,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "On on-chain remark happened."] @@ -5569,6 +5672,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An upgrade was authorized."] @@ -5998,9 +6102,9 @@ pub mod api { "Events", (), [ - 84u8, 28u8, 250u8, 81u8, 40u8, 13u8, 135u8, 170u8, 3u8, 113u8, 248u8, - 222u8, 138u8, 9u8, 41u8, 241u8, 61u8, 18u8, 77u8, 116u8, 249u8, 90u8, - 236u8, 58u8, 59u8, 40u8, 199u8, 30u8, 216u8, 167u8, 198u8, 208u8, + 22u8, 13u8, 27u8, 240u8, 21u8, 234u8, 234u8, 76u8, 238u8, 23u8, 186u8, + 68u8, 239u8, 54u8, 186u8, 201u8, 130u8, 192u8, 136u8, 90u8, 136u8, + 234u8, 254u8, 20u8, 69u8, 206u8, 3u8, 48u8, 250u8, 178u8, 222u8, 169u8, ], ) } @@ -6331,6 +6435,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -6370,6 +6475,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -6413,6 +6519,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -6530,7 +6637,7 @@ pub mod api { pub mod authorities { use super::runtime_types; pub type Authorities = - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec2<( + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<( runtime_types::sp_consensus_babe::app::Public, ::core::primitive::u64, )>; @@ -6559,7 +6666,7 @@ pub mod api { pub mod next_authorities { use super::runtime_types; pub type NextAuthorities = - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec2<( + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<( runtime_types::sp_consensus_babe::app::Public, ::core::primitive::u64, )>; @@ -6571,7 +6678,7 @@ pub mod api { pub mod under_construction { use super::runtime_types; pub type UnderConstruction = - runtime_types::bounded_collections::bounded_vec::BoundedVec7< + runtime_types::bounded_collections::bounded_vec::BoundedVec< [::core::primitive::u8; 32usize], >; pub type Param0 = ::core::primitive::u32; @@ -6607,7 +6714,7 @@ pub mod api { pub mod skipped_epochs { use super::runtime_types; pub type SkippedEpochs = - runtime_types::bounded_collections::bounded_vec::BoundedVec8<( + runtime_types::bounded_collections::bounded_vec::BoundedVec<( ::core::primitive::u64, ::core::primitive::u32, )>; @@ -7151,6 +7258,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7341,6 +7449,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7378,6 +7487,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7420,6 +7530,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7457,6 +7568,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7502,6 +7614,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7696,6 +7809,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A account index was assigned."] @@ -7720,6 +7834,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A account index has been freed up (unassigned)."] @@ -7742,6 +7857,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A account index has been frozen to its current account ID."] @@ -7870,6 +7986,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7908,6 +8025,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7946,6 +8064,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -7983,6 +8102,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -8028,6 +8148,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -8061,6 +8182,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -8096,6 +8218,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -8130,6 +8253,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -8163,6 +8287,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -8424,6 +8549,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account was created with some free balance."] @@ -8448,6 +8574,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"] @@ -8473,6 +8600,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Transfer succeeded."] @@ -8499,6 +8627,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A balance was set by root."] @@ -8523,6 +8652,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was reserved (moved from free to reserved)."] @@ -8547,6 +8677,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was unreserved (moved from reserved to free)."] @@ -8571,6 +8702,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was moved from the reserve of the first account to the second account."] @@ -8601,6 +8733,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was deposited (e.g. for transaction fees)."] @@ -8625,6 +8758,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."] @@ -8649,6 +8783,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was removed from the account (e.g. for misbehavior)."] @@ -8673,6 +8808,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was minted into an account."] @@ -8697,6 +8833,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was burned from an account."] @@ -8721,6 +8858,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was suspended from an account (it can be restored later)."] @@ -8745,6 +8883,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was restored into an account."] @@ -8769,6 +8908,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account was upgraded."] @@ -8791,6 +8931,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Total issuance was increased by `amount`, creating a credit to be balanced."] @@ -8813,6 +8954,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Total issuance was decreased by `amount`, creating a debt to be balanced."] @@ -8835,6 +8977,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was locked."] @@ -8859,6 +9002,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was unlocked."] @@ -8883,6 +9027,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was frozen."] @@ -8907,6 +9052,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was thawed."] @@ -8931,6 +9077,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The `TotalIssuance` was forcefully changed."] @@ -8969,7 +9116,7 @@ pub mod api { pub mod locks { use super::runtime_types; pub type Locks = - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec3< + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< runtime_types::pallet_balances::types::BalanceLock< ::core::primitive::u128, >, @@ -8978,19 +9125,18 @@ pub mod api { } pub mod reserves { use super::runtime_types; - pub type Reserves = - runtime_types::bounded_collections::bounded_vec::BoundedVec9< - runtime_types::pallet_balances::types::ReserveData< - [::core::primitive::u8; 8usize], - ::core::primitive::u128, - >, - >; + pub type Reserves = runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::pallet_balances::types::ReserveData< + [::core::primitive::u8; 8usize], + ::core::primitive::u128, + >, + >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } pub mod holds { use super::runtime_types; - pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec10< - runtime_types::pallet_balances::types::IdAmount< + pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::frame_support::traits::tokens::misc::IdAmount< runtime_types::rococo_runtime::RuntimeHoldReason, ::core::primitive::u128, >, @@ -8999,13 +9145,12 @@ pub mod api { } pub mod freezes { use super::runtime_types; - pub type Freezes = - runtime_types::bounded_collections::bounded_vec::BoundedVec11< - runtime_types::pallet_balances::types::IdAmount< - (), - ::core::primitive::u128, - >, - >; + pub type Freezes = runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::frame_support::traits::tokens::misc::IdAmount< + (), + ::core::primitive::u128, + >, + >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } } @@ -9454,6 +9599,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -9512,6 +9658,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A Parameter was set."] @@ -9614,6 +9761,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,"] @@ -9792,6 +9940,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "There is an offence reported of the given `kind` happened at the `session_index` and"] @@ -10090,6 +10239,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -10127,6 +10277,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -10221,6 +10372,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "New session has happened. Note that the argument is the session index, not the"] @@ -10553,6 +10705,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -10590,6 +10743,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -10632,6 +10786,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -10771,6 +10926,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "New authority set has been applied."] @@ -10796,6 +10952,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Current authority set has been paused."] @@ -10812,6 +10969,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Current authority set has been resumed."] @@ -10855,7 +11013,7 @@ pub mod api { pub mod authorities { use super::runtime_types; pub type Authorities = - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec4<( + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<( runtime_types::sp_consensus_grandpa::app::Public, ::core::primitive::u64, )>; @@ -11133,14 +11291,14 @@ pub mod api { pub mod keys { use super::runtime_types; pub type Keys = - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec5< + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< runtime_types::sp_authority_discovery::app::Public, >; } pub mod next_keys { use super::runtime_types; pub type NextKeys = - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec5< + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< runtime_types::sp_authority_discovery::app::Public, >; } @@ -11215,137 +11373,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "Put forward a suggestion for spending."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be signed."] - #[doc = ""] - #[doc = "## Details"] - #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] - #[doc = "It is returned once the proposal is awarded."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = "- O(1)"] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "Emits [`Event::Proposed`] if successful."] - pub struct ProposeSpend { - #[codec(compact)] - pub value: propose_spend::Value, - pub beneficiary: propose_spend::Beneficiary, - } - pub mod propose_spend { - use super::runtime_types; - pub type Value = ::core::primitive::u128; - pub type Beneficiary = ::subxt::ext::subxt_core::utils::MultiAddress< - ::subxt::ext::subxt_core::utils::AccountId32, - (), - >; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ProposeSpend { - const PALLET: &'static str = "Treasury"; - const CALL: &'static str = "propose_spend"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "Reject a proposed spend."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be [`Config::RejectOrigin`]."] - #[doc = ""] - #[doc = "## Details"] - #[doc = "The original deposit will be slashed."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = "- O(1)"] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "Emits [`Event::Rejected`] if successful."] - pub struct RejectProposal { - #[codec(compact)] - pub proposal_id: reject_proposal::ProposalId, - } - pub mod reject_proposal { - use super::runtime_types; - pub type ProposalId = ::core::primitive::u32; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RejectProposal { - const PALLET: &'static str = "Treasury"; - const CALL: &'static str = "reject_proposal"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "Approve a proposal."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be [`Config::ApproveOrigin`]."] - #[doc = ""] - #[doc = "## Details"] - #[doc = ""] - #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] - #[doc = "deposit will be returned."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = " - O(1)."] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "No events are emitted from this dispatch."] - pub struct ApproveProposal { - #[codec(compact)] - pub proposal_id: approve_proposal::ProposalId, - } - pub mod approve_proposal { - use super::runtime_types; - pub type ProposalId = ::core::primitive::u32; - } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ApproveProposal { - const PALLET: &'static str = "Treasury"; - const CALL: &'static str = "approve_proposal"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -11394,6 +11422,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -11441,6 +11470,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -11501,6 +11531,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -11511,7 +11542,7 @@ pub mod api { #[doc = ""] #[doc = "## Dispatch Origin"] #[doc = ""] - #[doc = "Must be signed."] + #[doc = "Must be signed"] #[doc = ""] #[doc = "## Details"] #[doc = ""] @@ -11545,6 +11576,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -11589,6 +11621,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -11625,103 +11658,6 @@ pub mod api { } pub struct TransactionApi; impl TransactionApi { - #[doc = "Put forward a suggestion for spending."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be signed."] - #[doc = ""] - #[doc = "## Details"] - #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] - #[doc = "It is returned once the proposal is awarded."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = "- O(1)"] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "Emits [`Event::Proposed`] if successful."] - pub fn propose_spend( - &self, - value: types::propose_spend::Value, - beneficiary: types::propose_spend::Beneficiary, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Treasury", - "propose_spend", - types::ProposeSpend { value, beneficiary }, - [ - 250u8, 230u8, 64u8, 10u8, 93u8, 132u8, 194u8, 69u8, 91u8, 50u8, 98u8, - 212u8, 72u8, 218u8, 29u8, 149u8, 2u8, 190u8, 219u8, 4u8, 25u8, 110u8, - 5u8, 199u8, 196u8, 37u8, 64u8, 57u8, 207u8, 235u8, 164u8, 226u8, - ], - ) - } - #[doc = "Reject a proposed spend."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be [`Config::RejectOrigin`]."] - #[doc = ""] - #[doc = "## Details"] - #[doc = "The original deposit will be slashed."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = "- O(1)"] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "Emits [`Event::Rejected`] if successful."] - pub fn reject_proposal( - &self, - proposal_id: types::reject_proposal::ProposalId, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Treasury", - "reject_proposal", - types::RejectProposal { proposal_id }, - [ - 18u8, 166u8, 80u8, 141u8, 222u8, 230u8, 4u8, 36u8, 7u8, 76u8, 12u8, - 40u8, 145u8, 114u8, 12u8, 43u8, 223u8, 78u8, 189u8, 222u8, 120u8, 80u8, - 225u8, 215u8, 119u8, 68u8, 200u8, 15u8, 25u8, 172u8, 192u8, 173u8, - ], - ) - } - #[doc = "Approve a proposal."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be [`Config::ApproveOrigin`]."] - #[doc = ""] - #[doc = "## Details"] - #[doc = ""] - #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] - #[doc = "deposit will be returned."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = " - O(1)."] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "No events are emitted from this dispatch."] - pub fn approve_proposal( - &self, - proposal_id: types::approve_proposal::ProposalId, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload - { - ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( - "Treasury", - "approve_proposal", - types::ApproveProposal { proposal_id }, - [ - 154u8, 176u8, 152u8, 97u8, 167u8, 177u8, 78u8, 9u8, 235u8, 229u8, - 199u8, 193u8, 214u8, 3u8, 16u8, 30u8, 4u8, 104u8, 27u8, 184u8, 100u8, - 65u8, 179u8, 13u8, 91u8, 62u8, 115u8, 5u8, 219u8, 211u8, 251u8, 153u8, - ], - ) - } #[doc = "Propose and approve a spend of treasury funds."] #[doc = ""] #[doc = "## Dispatch Origin"] @@ -11856,7 +11792,7 @@ pub mod api { #[doc = ""] #[doc = "## Dispatch Origin"] #[doc = ""] - #[doc = "Must be signed."] + #[doc = "Must be signed"] #[doc = ""] #[doc = "## Details"] #[doc = ""] @@ -11968,28 +11904,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "New proposal."] - pub struct Proposed { - pub proposal_index: proposed::ProposalIndex, - } - pub mod proposed { - use super::runtime_types; - pub type ProposalIndex = ::core::primitive::u32; - } - impl ::subxt::ext::subxt_core::events::StaticEvent for Proposed { - const PALLET: &'static str = "Treasury"; - const EVENT: &'static str = "Proposed"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "We have ended a spend period and will now allocate funds."] @@ -12012,6 +11927,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some funds have been allocated."] @@ -12038,30 +11954,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "A proposal was rejected; funds were slashed."] - pub struct Rejected { - pub proposal_index: rejected::ProposalIndex, - pub slashed: rejected::Slashed, - } - pub mod rejected { - use super::runtime_types; - pub type ProposalIndex = ::core::primitive::u32; - pub type Slashed = ::core::primitive::u128; - } - impl ::subxt::ext::subxt_core::events::StaticEvent for Rejected { - const PALLET: &'static str = "Treasury"; - const EVENT: &'static str = "Rejected"; - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some of our funds have been burnt."] @@ -12084,6 +11977,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Spending has finished; this is the amount that rolls over until next spend."] @@ -12106,6 +12000,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some funds have been deposited."] @@ -12128,6 +12023,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A new spend proposal has been approved."] @@ -12154,6 +12050,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The inactive funds of the pallet have been updated."] @@ -12178,6 +12075,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A new asset spend proposal has been approved."] @@ -12211,6 +12109,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An approved spend was voided."] @@ -12233,6 +12132,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A payment happened."] @@ -12257,6 +12157,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A payment failed and can be retried."] @@ -12281,6 +12182,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A spend was processed and removed from the storage. It might have been successfully"] @@ -12320,7 +12222,7 @@ pub mod api { pub mod approvals { use super::runtime_types; pub type Approvals = - runtime_types::bounded_collections::bounded_vec::BoundedVec12< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u32, >; } @@ -12532,56 +12434,6 @@ pub mod api { use super::runtime_types; pub struct ConstantsApi; impl ConstantsApi { - #[doc = " Fraction of a proposal's value that should be bonded in order to place the proposal."] - #[doc = " An accepted proposal gets these back. A rejected proposal does not."] - pub fn proposal_bond( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - runtime_types::sp_arithmetic::per_things::Permill, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Treasury", - "ProposalBond", - [ - 65u8, 93u8, 120u8, 165u8, 204u8, 81u8, 159u8, 163u8, 93u8, 135u8, - 114u8, 121u8, 147u8, 35u8, 215u8, 213u8, 4u8, 223u8, 83u8, 37u8, 225u8, - 200u8, 189u8, 156u8, 140u8, 36u8, 58u8, 46u8, 42u8, 232u8, 155u8, 0u8, - ], - ) - } - #[doc = " Minimum amount of funds that should be placed in a deposit for making a proposal."] - pub fn proposal_bond_minimum( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::primitive::u128, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Treasury", - "ProposalBondMinimum", - [ - 84u8, 157u8, 140u8, 4u8, 93u8, 57u8, 29u8, 133u8, 105u8, 200u8, 214u8, - 27u8, 144u8, 208u8, 218u8, 160u8, 130u8, 109u8, 101u8, 54u8, 210u8, - 136u8, 71u8, 63u8, 49u8, 237u8, 234u8, 15u8, 178u8, 98u8, 148u8, 156u8, - ], - ) - } - #[doc = " Maximum amount of funds that should be placed in a deposit for making a proposal."] - pub fn proposal_bond_maximum( - &self, - ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< - ::core::option::Option<::core::primitive::u128>, - > { - ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( - "Treasury", - "ProposalBondMaximum", - [ - 198u8, 51u8, 89u8, 159u8, 124u8, 251u8, 51u8, 80u8, 167u8, 193u8, 44u8, - 199u8, 80u8, 36u8, 41u8, 130u8, 137u8, 229u8, 178u8, 208u8, 37u8, - 215u8, 169u8, 183u8, 180u8, 191u8, 140u8, 240u8, 250u8, 61u8, 42u8, - 147u8, - ], - ) - } #[doc = " Period between successive spends."] pub fn spend_period( &self, @@ -12691,6 +12543,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -12730,6 +12583,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -12788,6 +12642,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -12827,6 +12682,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -12866,6 +12722,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -12922,6 +12779,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13196,6 +13054,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account has delegated their vote to another account. \\[who, target\\]"] @@ -13217,6 +13076,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An \\[account\\] has cancelled a previous delegation operation."] @@ -13248,7 +13108,7 @@ pub mod api { pub mod class_locks_for { use super::runtime_types; pub type ClassLocksFor = - runtime_types::bounded_collections::bounded_vec::BoundedVec14<( + runtime_types::bounded_collections::bounded_vec::BoundedVec<( ::core::primitive::u16, ::core::primitive::u128, )>; @@ -13465,6 +13325,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13510,6 +13371,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13543,6 +13405,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13575,6 +13438,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13606,6 +13470,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13637,6 +13502,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13666,6 +13532,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13700,6 +13567,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13732,6 +13600,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -13999,6 +13868,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been submitted."] @@ -14028,6 +13898,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The decision deposit has been placed."] @@ -14054,6 +13925,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The decision deposit has been refunded."] @@ -14080,6 +13952,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A deposit has been slashed."] @@ -14104,6 +13977,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has moved into the deciding phase."] @@ -14136,6 +14010,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ConfirmStarted { @@ -14157,6 +14032,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ConfirmAborted { @@ -14178,6 +14054,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has ended its confirmation phase and is ready for approval."] @@ -14203,6 +14080,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been approved and its proposal has been scheduled."] @@ -14225,6 +14103,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A proposal has been rejected by referendum."] @@ -14250,6 +14129,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been timed out without being decided."] @@ -14275,6 +14155,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been cancelled."] @@ -14300,6 +14181,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been killed."] @@ -14325,6 +14207,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The submission deposit has been refunded."] @@ -14351,6 +14234,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Metadata for a referendum has been set."] @@ -14375,6 +14259,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Metadata for a referendum has been cleared."] @@ -14403,7 +14288,7 @@ pub mod api { pub mod referendum_info_for { use super::runtime_types; pub type ReferendumInfoFor = - runtime_types::pallet_referenda::types::ReferendumInfo1< + runtime_types::pallet_referenda::types::ReferendumInfo< ::core::primitive::u16, runtime_types::rococo_runtime::OriginCaller, ::core::primitive::u32, @@ -14423,7 +14308,7 @@ pub mod api { pub mod track_queue { use super::runtime_types; pub type TrackQueue = - runtime_types::bounded_collections::bounded_vec::BoundedVec15<( + runtime_types::bounded_collections::bounded_vec::BoundedVec<( ::core::primitive::u32, ::core::primitive::u128, )>; @@ -14797,6 +14682,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -14831,6 +14717,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -14865,6 +14752,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -14900,6 +14788,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -14937,6 +14826,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -14975,6 +14865,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -15012,6 +14903,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -15232,6 +15124,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A member `who` has been added."] @@ -15254,6 +15147,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The member `who`se rank has been changed to the given `rank`."] @@ -15278,6 +15172,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The member `who` of given `rank` has been removed from the collective."] @@ -15302,6 +15197,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The member `who` has voted for the `poll` with the given `vote` leading to an updated"] @@ -15331,6 +15227,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The member `who` had their `AccountId` changed to `new_who`."] @@ -15383,7 +15280,7 @@ pub mod api { pub mod voting_cleanup { use super::runtime_types; pub type VotingCleanup = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -15819,6 +15716,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -15864,6 +15762,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -15897,6 +15796,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -15929,6 +15829,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -15960,6 +15861,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -15991,6 +15893,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -16020,6 +15923,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -16054,6 +15958,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -16086,6 +15991,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -16353,6 +16259,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been submitted."] @@ -16382,6 +16289,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The decision deposit has been placed."] @@ -16408,6 +16316,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The decision deposit has been refunded."] @@ -16434,6 +16343,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A deposit has been slashed."] @@ -16458,6 +16368,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has moved into the deciding phase."] @@ -16489,6 +16400,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ConfirmStarted { @@ -16510,6 +16422,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ConfirmAborted { @@ -16531,6 +16444,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has ended its confirmation phase and is ready for approval."] @@ -16555,6 +16469,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been approved and its proposal has been scheduled."] @@ -16577,6 +16492,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A proposal has been rejected by referendum."] @@ -16601,6 +16517,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been timed out without being decided."] @@ -16625,6 +16542,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been cancelled."] @@ -16649,6 +16567,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A referendum has been killed."] @@ -16673,6 +16592,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The submission deposit has been refunded."] @@ -16699,6 +16619,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Metadata for a referendum has been set."] @@ -16723,6 +16644,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Metadata for a referendum has been cleared."] @@ -16751,7 +16673,7 @@ pub mod api { pub mod referendum_info_for { use super::runtime_types; pub type ReferendumInfoFor = - runtime_types::pallet_referenda::types::ReferendumInfo2< + runtime_types::pallet_referenda::types::ReferendumInfo< ::core::primitive::u16, runtime_types::rococo_runtime::OriginCaller, ::core::primitive::u32, @@ -16769,7 +16691,7 @@ pub mod api { pub mod track_queue { use super::runtime_types; pub type TrackQueue = - runtime_types::bounded_collections::bounded_vec::BoundedVec16<( + runtime_types::bounded_collections::bounded_vec::BoundedVec<( ::core::primitive::u32, ::core::primitive::u32, )>; @@ -17149,6 +17071,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17174,6 +17097,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17199,6 +17123,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17228,6 +17153,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17322,10 +17248,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 133u8, 37u8, 36u8, 132u8, 146u8, 219u8, 42u8, 15u8, 124u8, 225u8, - 111u8, 74u8, 26u8, 143u8, 134u8, 254u8, 206u8, 144u8, 20u8, 148u8, - 233u8, 86u8, 223u8, 85u8, 243u8, 7u8, 153u8, 29u8, 31u8, 181u8, 33u8, - 144u8, + 18u8, 226u8, 91u8, 63u8, 59u8, 100u8, 185u8, 40u8, 180u8, 198u8, 40u8, + 182u8, 93u8, 118u8, 74u8, 62u8, 232u8, 10u8, 192u8, 171u8, 203u8, + 120u8, 196u8, 70u8, 223u8, 140u8, 35u8, 190u8, 29u8, 134u8, 186u8, + 90u8, ], ) } @@ -17343,6 +17269,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct CallWhitelisted { @@ -17364,6 +17291,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct WhitelistedCallRemoved { @@ -17385,6 +17313,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct WhitelistedCallDispatched { @@ -17487,6 +17416,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17539,6 +17469,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17591,6 +17522,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17649,6 +17581,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17694,6 +17627,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -17925,6 +17859,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Someone claimed some DOTs."] @@ -18250,6 +18185,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18295,6 +18231,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18335,6 +18272,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18375,6 +18313,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18409,6 +18348,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18449,6 +18389,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18505,9 +18446,10 @@ pub mod api { "batch", types::Batch { calls }, [ - 94u8, 129u8, 70u8, 92u8, 100u8, 48u8, 24u8, 199u8, 35u8, 142u8, 149u8, - 37u8, 51u8, 142u8, 10u8, 124u8, 248u8, 42u8, 36u8, 185u8, 22u8, 2u8, - 80u8, 185u8, 134u8, 70u8, 3u8, 77u8, 76u8, 95u8, 25u8, 148u8, + 197u8, 60u8, 206u8, 156u8, 16u8, 7u8, 227u8, 99u8, 74u8, 178u8, 52u8, + 145u8, 235u8, 23u8, 234u8, 131u8, 212u8, 12u8, 20u8, 194u8, 146u8, + 149u8, 144u8, 149u8, 222u8, 249u8, 229u8, 199u8, 11u8, 12u8, 78u8, + 239u8, ], ) } @@ -18538,10 +18480,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 165u8, 61u8, 249u8, 239u8, 171u8, 210u8, 175u8, 114u8, 152u8, 55u8, - 71u8, 247u8, 143u8, 100u8, 34u8, 47u8, 103u8, 137u8, 240u8, 117u8, - 28u8, 52u8, 7u8, 86u8, 17u8, 131u8, 111u8, 47u8, 53u8, 131u8, 162u8, - 191u8, + 18u8, 144u8, 181u8, 191u8, 114u8, 40u8, 65u8, 88u8, 104u8, 124u8, 9u8, + 208u8, 72u8, 45u8, 80u8, 41u8, 244u8, 46u8, 197u8, 64u8, 81u8, 73u8, + 17u8, 171u8, 50u8, 142u8, 39u8, 145u8, 153u8, 230u8, 23u8, 146u8, ], ) } @@ -18568,10 +18509,9 @@ pub mod api { "batch_all", types::BatchAll { calls }, [ - 205u8, 0u8, 102u8, 235u8, 255u8, 118u8, 177u8, 183u8, 250u8, 249u8, - 157u8, 95u8, 136u8, 127u8, 208u8, 237u8, 199u8, 125u8, 81u8, 73u8, - 212u8, 48u8, 112u8, 150u8, 176u8, 110u8, 168u8, 8u8, 156u8, 161u8, - 47u8, 44u8, + 157u8, 202u8, 0u8, 213u8, 120u8, 27u8, 13u8, 146u8, 35u8, 65u8, 32u8, + 32u8, 220u8, 77u8, 163u8, 83u8, 99u8, 25u8, 255u8, 135u8, 33u8, 41u8, + 161u8, 128u8, 142u8, 18u8, 95u8, 9u8, 197u8, 33u8, 203u8, 198u8, ], ) } @@ -18595,9 +18535,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 78u8, 199u8, 183u8, 166u8, 60u8, 213u8, 4u8, 78u8, 105u8, 173u8, 54u8, - 8u8, 189u8, 173u8, 32u8, 51u8, 47u8, 192u8, 99u8, 91u8, 116u8, 50u8, - 217u8, 195u8, 112u8, 80u8, 147u8, 214u8, 215u8, 105u8, 171u8, 129u8, + 94u8, 45u8, 194u8, 202u8, 252u8, 48u8, 217u8, 238u8, 62u8, 5u8, 66u8, + 71u8, 197u8, 164u8, 98u8, 239u8, 141u8, 10u8, 90u8, 73u8, 161u8, 242u8, + 73u8, 106u8, 128u8, 140u8, 206u8, 36u8, 178u8, 93u8, 99u8, 192u8, ], ) } @@ -18624,10 +18564,10 @@ pub mod api { "force_batch", types::ForceBatch { calls }, [ - 61u8, 104u8, 12u8, 124u8, 188u8, 239u8, 176u8, 172u8, 77u8, 185u8, - 242u8, 145u8, 95u8, 210u8, 85u8, 157u8, 113u8, 156u8, 105u8, 236u8, - 178u8, 69u8, 83u8, 115u8, 174u8, 9u8, 160u8, 0u8, 5u8, 216u8, 169u8, - 11u8, + 199u8, 107u8, 86u8, 246u8, 148u8, 179u8, 176u8, 174u8, 6u8, 16u8, + 114u8, 8u8, 167u8, 125u8, 206u8, 169u8, 95u8, 224u8, 178u8, 224u8, + 203u8, 95u8, 249u8, 175u8, 85u8, 52u8, 60u8, 100u8, 127u8, 64u8, 2u8, + 204u8, ], ) } @@ -18651,10 +18591,10 @@ pub mod api { weight, }, [ - 12u8, 167u8, 181u8, 30u8, 158u8, 195u8, 12u8, 29u8, 145u8, 240u8, - 170u8, 31u8, 152u8, 163u8, 255u8, 89u8, 170u8, 91u8, 174u8, 185u8, - 67u8, 76u8, 134u8, 181u8, 99u8, 125u8, 190u8, 112u8, 144u8, 121u8, - 202u8, 193u8, + 50u8, 245u8, 114u8, 136u8, 121u8, 54u8, 81u8, 1u8, 50u8, 178u8, 176u8, + 158u8, 221u8, 41u8, 179u8, 208u8, 29u8, 156u8, 81u8, 182u8, 216u8, + 13u8, 250u8, 32u8, 10u8, 139u8, 145u8, 56u8, 185u8, 102u8, 213u8, + 207u8, ], ) } @@ -18672,6 +18612,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Batch of dispatches did not complete fully. Index of first failing dispatch given, as"] @@ -18697,6 +18638,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Batch of dispatches completed fully with no error."] @@ -18713,6 +18655,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Batch of dispatches completed but has errors."] @@ -18729,6 +18672,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A single item within a Batch of dispatches has completed with no error."] @@ -18745,6 +18689,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A single item within a Batch of dispatches has completed with error."] @@ -18767,6 +18712,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A call was dispatched."] @@ -18828,6 +18774,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18863,6 +18810,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18898,6 +18846,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18935,6 +18884,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -18962,6 +18912,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19007,6 +18958,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19042,6 +18994,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19078,6 +19031,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19116,6 +19070,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19151,6 +19106,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19202,6 +19158,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19242,6 +19199,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19279,6 +19237,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19313,6 +19272,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19348,6 +19308,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19377,6 +19338,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19414,6 +19376,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19443,6 +19406,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19486,6 +19450,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19499,10 +19464,9 @@ pub mod api { } pub mod accept_username { use super::runtime_types; - pub type Username = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< - ::core::primitive::u8, - >; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for AcceptUsername { const PALLET: &'static str = "Identity"; @@ -19516,6 +19480,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19530,10 +19495,9 @@ pub mod api { } pub mod remove_expired_approval { use super::runtime_types; - pub type Username = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< - ::core::primitive::u8, - >; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveExpiredApproval { const PALLET: &'static str = "Identity"; @@ -19547,6 +19511,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19559,10 +19524,9 @@ pub mod api { } pub mod set_primary_username { use super::runtime_types; - pub type Username = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< - ::core::primitive::u8, - >; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SetPrimaryUsername { const PALLET: &'static str = "Identity"; @@ -19576,6 +19540,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -19589,10 +19554,9 @@ pub mod api { } pub mod remove_dangling_username { use super::runtime_types; - pub type Username = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< - ::core::primitive::u8, - >; + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u8, + >; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RemoveDanglingUsername { const PALLET: &'static str = "Identity"; @@ -20166,6 +20130,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A name was set or reset (which will remove all judgements)."] @@ -20188,6 +20153,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A name was cleared, and the given balance returned."] @@ -20212,6 +20178,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A name was removed and the given balance slashed."] @@ -20236,6 +20203,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A judgement was asked from a registrar."] @@ -20260,6 +20228,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A judgement request was retracted."] @@ -20284,6 +20253,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A judgement was given by a registrar."] @@ -20308,6 +20278,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A registrar was added."] @@ -20330,6 +20301,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A sub-identity was added to an identity and the deposit paid."] @@ -20356,6 +20328,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A sub-identity was removed from an identity and the deposit freed."] @@ -20382,6 +20355,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A sub-identity was cleared, and the given deposit repatriated from the"] @@ -20409,6 +20383,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A username authority was added."] @@ -20431,6 +20406,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A username authority was removed."] @@ -20453,6 +20429,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A username was set for `who`."] @@ -20463,7 +20440,7 @@ pub mod api { pub mod username_set { use super::runtime_types; pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; - pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; } @@ -20479,6 +20456,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A username was queued, but `who` must accept it prior to `expiration`."] @@ -20490,7 +20468,7 @@ pub mod api { pub mod username_queued { use super::runtime_types; pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; - pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; pub type Expiration = ::core::primitive::u32; @@ -20507,6 +20485,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A queued username passed its expiration without being claimed and was removed."] @@ -20529,6 +20508,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A username was set as a primary and can be looked up from `who`."] @@ -20539,7 +20519,7 @@ pub mod api { pub mod primary_username_set { use super::runtime_types; pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; - pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; } @@ -20555,6 +20535,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A dangling username (as in, a username corresponding to an account that has removed its"] @@ -20566,7 +20547,7 @@ pub mod api { pub mod dangling_username_removed { use super::runtime_types; pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; - pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub type Username = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; } @@ -20587,7 +20568,7 @@ pub mod api { runtime_types::pallet_identity::legacy::IdentityInfo, >, ::core::option::Option< - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, >, @@ -20606,7 +20587,7 @@ pub mod api { use super::runtime_types; pub type SubsOf = ( ::core::primitive::u128, - runtime_types::bounded_collections::bounded_vec::BoundedVec18< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::subxt::ext::subxt_core::utils::AccountId32, >, ); @@ -20615,7 +20596,7 @@ pub mod api { pub mod registrars { use super::runtime_types; pub type Registrars = - runtime_types::bounded_collections::bounded_vec::BoundedVec19< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::option::Option< runtime_types::pallet_identity::types::RegistrarInfo< ::core::primitive::u128, @@ -20629,7 +20610,7 @@ pub mod api { use super::runtime_types; pub type UsernameAuthorities = runtime_types::pallet_identity::types::AuthorityProperties< - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, >; @@ -20638,7 +20619,7 @@ pub mod api { pub mod account_of_username { use super::runtime_types; pub type AccountOfUsername = ::subxt::ext::subxt_core::utils::AccountId32; - pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; } @@ -20648,7 +20629,7 @@ pub mod api { ::subxt::ext::subxt_core::utils::AccountId32, ::core::primitive::u32, ); - pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub type Param0 = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; } @@ -21168,6 +21149,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21202,6 +21184,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21228,6 +21211,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21277,6 +21261,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21303,6 +21288,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21341,6 +21327,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21373,6 +21360,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21402,6 +21390,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21429,6 +21418,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21485,6 +21475,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21509,6 +21500,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21553,6 +21545,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21596,6 +21589,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21617,6 +21611,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21638,6 +21633,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21666,6 +21662,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21696,6 +21693,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21718,6 +21716,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21748,6 +21747,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -21778,6 +21778,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -22310,6 +22311,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The society is founded by the given identity."] @@ -22332,6 +22334,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A membership bid just happened. The given account is the candidate's ID and their offer"] @@ -22357,6 +22360,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A membership bid just happened by vouching. The given account is the candidate's ID and"] @@ -22384,6 +22388,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A candidate was dropped (due to an excess of bids in the system)."] @@ -22406,6 +22411,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A candidate was dropped (by their request)."] @@ -22428,6 +22434,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A candidate was dropped (by request of who vouched for them)."] @@ -22450,6 +22457,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A group of candidates have been inducted. The batch's primary is the first value, the"] @@ -22477,6 +22485,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A suspended member has been judged."] @@ -22501,6 +22510,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A candidate has been suspended"] @@ -22523,6 +22533,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A member has been suspended"] @@ -22545,6 +22556,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A member has been challenged"] @@ -22567,6 +22579,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A vote has been placed"] @@ -22593,6 +22606,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A vote has been placed for a defending member"] @@ -22617,6 +22631,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A new set of \\[params\\] has been set for the group."] @@ -22640,6 +22655,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Society is unfounded."] @@ -22662,6 +22678,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some funds were deposited into the society account."] @@ -22684,6 +22701,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A \\[member\\] got elevated to \\[rank\\]."] @@ -22735,7 +22753,7 @@ pub mod api { use super::runtime_types; pub type Payouts = runtime_types::pallet_society::PayoutRecord< ::core::primitive::u128, - runtime_types::bounded_collections::bounded_vec::BoundedVec15<( + runtime_types::bounded_collections::bounded_vec::BoundedVec<( ::core::primitive::u32, ::core::primitive::u128, )>, @@ -22762,7 +22780,7 @@ pub mod api { } pub mod bids { use super::runtime_types; - pub type Bids = runtime_types::bounded_collections::bounded_vec::BoundedVec20< + pub type Bids = runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::pallet_society::Bid< ::subxt::ext::subxt_core::utils::AccountId32, ::core::primitive::u128, @@ -22790,7 +22808,7 @@ pub mod api { pub mod vote_clear_cursor { use super::runtime_types; pub type VoteClearCursor = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; @@ -23728,6 +23746,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -23766,6 +23785,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -23807,6 +23827,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -23854,6 +23875,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -23893,6 +23915,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -23938,6 +23961,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -23975,6 +23999,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -24014,6 +24039,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -24044,6 +24070,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -24096,9 +24123,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 82u8, 32u8, 246u8, 64u8, 159u8, 116u8, 57u8, 66u8, 134u8, 214u8, 105u8, - 73u8, 162u8, 229u8, 193u8, 29u8, 27u8, 153u8, 215u8, 216u8, 8u8, 38u8, - 51u8, 144u8, 184u8, 178u8, 147u8, 218u8, 33u8, 61u8, 98u8, 5u8, + 206u8, 180u8, 39u8, 82u8, 63u8, 74u8, 29u8, 28u8, 95u8, 149u8, 2u8, + 78u8, 234u8, 214u8, 143u8, 191u8, 62u8, 6u8, 43u8, 223u8, 76u8, 152u8, + 235u8, 102u8, 228u8, 143u8, 158u8, 230u8, 99u8, 66u8, 168u8, 93u8, ], ) } @@ -24340,6 +24367,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A recovery process has been set up for an account."] @@ -24362,6 +24390,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A recovery process has been initiated for lost account by rescuer account."] @@ -24386,6 +24415,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A recovery process for lost account by rescuer account has been vouched for by sender."] @@ -24412,6 +24442,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A recovery process for lost account by rescuer account has been closed."] @@ -24436,6 +24467,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Lost account has been successfully recovered by rescuer account."] @@ -24460,6 +24492,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A recovery process has been removed for an account."] @@ -24484,7 +24517,7 @@ pub mod api { pub type Recoverable = runtime_types::pallet_recovery::RecoveryConfig< ::core::primitive::u32, ::core::primitive::u128, - runtime_types::bounded_collections::bounded_vec::BoundedVec18< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::subxt::ext::subxt_core::utils::AccountId32, >, >; @@ -24495,7 +24528,7 @@ pub mod api { pub type ActiveRecoveries = runtime_types::pallet_recovery::ActiveRecovery< ::core::primitive::u32, ::core::primitive::u128, - runtime_types::bounded_collections::bounded_vec::BoundedVec18< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::subxt::ext::subxt_core::utils::AccountId32, >, >; @@ -24817,6 +24850,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -24845,6 +24879,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -24884,6 +24919,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -24930,6 +24966,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -24982,6 +25019,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25030,6 +25068,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25262,6 +25301,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The amount vested has been updated. This could indicate a change in funds available."] @@ -25287,6 +25327,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An \\[account\\] has become fully vested."] @@ -25308,13 +25349,12 @@ pub mod api { use super::runtime_types; pub mod vesting { use super::runtime_types; - pub type Vesting = - runtime_types::bounded_collections::bounded_vec::BoundedVec21< - runtime_types::pallet_vesting::vesting_info::VestingInfo< - ::core::primitive::u128, - ::core::primitive::u32, - >, - >; + pub type Vesting = runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::pallet_vesting::vesting_info::VestingInfo< + ::core::primitive::u128, + ::core::primitive::u32, + >, + >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } pub mod storage_version { @@ -25458,6 +25498,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25491,6 +25532,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25519,6 +25561,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25554,6 +25597,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25580,6 +25624,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25613,6 +25658,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25649,6 +25695,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25690,6 +25737,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25731,6 +25779,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25757,6 +25806,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -25797,9 +25847,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 230u8, 211u8, 250u8, 199u8, 35u8, 211u8, 113u8, 186u8, 36u8, 37u8, - 253u8, 42u8, 173u8, 79u8, 57u8, 132u8, 1u8, 104u8, 3u8, 99u8, 218u8, - 42u8, 230u8, 198u8, 107u8, 145u8, 11u8, 78u8, 59u8, 103u8, 42u8, 78u8, + 240u8, 181u8, 209u8, 119u8, 171u8, 133u8, 149u8, 153u8, 241u8, 127u8, + 207u8, 66u8, 144u8, 137u8, 68u8, 164u8, 212u8, 26u8, 174u8, 117u8, + 14u8, 83u8, 237u8, 162u8, 30u8, 19u8, 120u8, 223u8, 167u8, 65u8, 115u8, + 156u8, ], ) } @@ -25843,9 +25894,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 204u8, 94u8, 156u8, 9u8, 11u8, 54u8, 167u8, 16u8, 14u8, 204u8, 176u8, - 50u8, 252u8, 30u8, 138u8, 102u8, 129u8, 13u8, 9u8, 99u8, 71u8, 236u8, - 233u8, 34u8, 0u8, 226u8, 11u8, 107u8, 180u8, 15u8, 223u8, 67u8, + 166u8, 76u8, 53u8, 217u8, 74u8, 72u8, 196u8, 51u8, 21u8, 28u8, 148u8, + 73u8, 172u8, 2u8, 237u8, 190u8, 146u8, 207u8, 46u8, 65u8, 1u8, 236u8, + 199u8, 109u8, 70u8, 249u8, 112u8, 235u8, 237u8, 201u8, 157u8, 27u8, ], ) } @@ -25885,9 +25936,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 0u8, 19u8, 153u8, 176u8, 31u8, 175u8, 15u8, 125u8, 90u8, 49u8, 163u8, - 50u8, 170u8, 23u8, 147u8, 102u8, 19u8, 142u8, 240u8, 67u8, 103u8, - 189u8, 244u8, 21u8, 47u8, 190u8, 218u8, 117u8, 17u8, 26u8, 0u8, 149u8, + 155u8, 143u8, 110u8, 199u8, 174u8, 80u8, 166u8, 199u8, 81u8, 63u8, + 218u8, 189u8, 57u8, 56u8, 140u8, 105u8, 107u8, 188u8, 113u8, 147u8, + 71u8, 31u8, 215u8, 118u8, 195u8, 247u8, 243u8, 25u8, 148u8, 163u8, + 155u8, 24u8, ], ) } @@ -25912,10 +25964,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 208u8, 211u8, 138u8, 209u8, 177u8, 180u8, 222u8, 100u8, 46u8, 196u8, - 79u8, 218u8, 166u8, 123u8, 128u8, 183u8, 109u8, 35u8, 138u8, 7u8, 56u8, - 143u8, 37u8, 172u8, 29u8, 57u8, 150u8, 144u8, 174u8, 129u8, 169u8, - 186u8, + 104u8, 165u8, 148u8, 183u8, 78u8, 162u8, 139u8, 166u8, 75u8, 31u8, + 114u8, 86u8, 129u8, 240u8, 70u8, 125u8, 208u8, 206u8, 219u8, 100u8, + 219u8, 25u8, 19u8, 254u8, 122u8, 206u8, 216u8, 123u8, 113u8, 176u8, + 89u8, 2u8, ], ) } @@ -26037,6 +26089,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Scheduled some task."] @@ -26061,6 +26114,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Canceled some task."] @@ -26085,6 +26139,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Dispatched some task."] @@ -26112,6 +26167,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Set a retry configuration for some task."] @@ -26140,6 +26196,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Cancel a retry configuration for some task."] @@ -26164,6 +26221,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The call for the provided hash was not found so the task has been aborted."] @@ -26188,6 +26246,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The given task was unable to be renewed since the agenda is full at that block."] @@ -26212,6 +26271,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The given task was unable to be retried since the agenda is full at that block or there"] @@ -26237,6 +26297,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The given task can never be executed since it is overweight."] @@ -26264,7 +26325,7 @@ pub mod api { } pub mod agenda { use super::runtime_types; - pub type Agenda = runtime_types::bounded_collections::bounded_vec::BoundedVec22< + pub type Agenda = runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::option::Option< runtime_types::pallet_scheduler::Scheduled< [::core::primitive::u8; 32usize], @@ -26570,6 +26631,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26612,6 +26674,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26653,6 +26716,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26692,6 +26756,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26717,6 +26782,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26764,6 +26830,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26818,6 +26885,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26863,6 +26931,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26903,6 +26972,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -26943,6 +27013,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -27012,10 +27083,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 182u8, 194u8, 143u8, 163u8, 248u8, 84u8, 194u8, 49u8, 194u8, 245u8, - 168u8, 141u8, 153u8, 236u8, 87u8, 80u8, 71u8, 254u8, 82u8, 33u8, 156u8, - 43u8, 208u8, 209u8, 79u8, 196u8, 133u8, 232u8, 72u8, 120u8, 245u8, - 10u8, + 235u8, 49u8, 239u8, 228u8, 75u8, 65u8, 96u8, 209u8, 95u8, 33u8, 35u8, + 7u8, 23u8, 251u8, 39u8, 151u8, 98u8, 209u8, 150u8, 94u8, 86u8, 195u8, + 64u8, 170u8, 16u8, 52u8, 82u8, 212u8, 211u8, 191u8, 146u8, 148u8, ], ) } @@ -27303,10 +27373,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 25u8, 26u8, 82u8, 194u8, 249u8, 106u8, 152u8, 31u8, 19u8, 159u8, 241u8, - 161u8, 224u8, 133u8, 54u8, 107u8, 62u8, 69u8, 19u8, 178u8, 189u8, - 150u8, 206u8, 94u8, 191u8, 231u8, 197u8, 69u8, 69u8, 217u8, 161u8, - 120u8, + 170u8, 177u8, 203u8, 12u8, 12u8, 19u8, 98u8, 145u8, 185u8, 4u8, 45u8, + 44u8, 79u8, 149u8, 248u8, 32u8, 148u8, 171u8, 251u8, 91u8, 85u8, 183u8, + 181u8, 19u8, 18u8, 82u8, 89u8, 87u8, 154u8, 96u8, 91u8, 177u8, ], ) } @@ -27324,6 +27393,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A proxy was executed correctly, with the given."] @@ -27347,6 +27417,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A pure account has been created by new proxy with given"] @@ -27376,6 +27447,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An announcement was placed to make a call in the future."] @@ -27402,6 +27474,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A proxy was added."] @@ -27430,6 +27503,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A proxy was removed."] @@ -27458,7 +27532,7 @@ pub mod api { pub mod proxies { use super::runtime_types; pub type Proxies = ( - runtime_types::bounded_collections::bounded_vec::BoundedVec23< + runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::pallet_proxy::ProxyDefinition< ::subxt::ext::subxt_core::utils::AccountId32, runtime_types::rococo_runtime::ProxyType, @@ -27472,7 +27546,7 @@ pub mod api { pub mod announcements { use super::runtime_types; pub type Announcements = ( - runtime_types::bounded_collections::bounded_vec::BoundedVec24< + runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::pallet_proxy::Announcement< ::subxt::ext::subxt_core::utils::AccountId32, ::subxt::ext::subxt_core::utils::H256, @@ -27725,6 +27799,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -27767,6 +27842,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -27843,6 +27919,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -27910,6 +27987,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -27986,9 +28064,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 96u8, 252u8, 222u8, 130u8, 89u8, 149u8, 67u8, 14u8, 80u8, 3u8, 201u8, - 180u8, 192u8, 123u8, 203u8, 147u8, 20u8, 142u8, 155u8, 222u8, 21u8, - 229u8, 125u8, 40u8, 56u8, 210u8, 99u8, 191u8, 41u8, 98u8, 185u8, 230u8, + 211u8, 75u8, 188u8, 231u8, 69u8, 23u8, 162u8, 32u8, 164u8, 17u8, 213u8, + 176u8, 161u8, 104u8, 157u8, 233u8, 249u8, 124u8, 135u8, 172u8, 253u8, + 13u8, 170u8, 172u8, 58u8, 14u8, 175u8, 0u8, 199u8, 246u8, 78u8, 222u8, ], ) } @@ -28051,10 +28129,9 @@ pub mod api { max_weight, }, [ - 135u8, 76u8, 112u8, 115u8, 139u8, 246u8, 96u8, 148u8, 172u8, 175u8, - 158u8, 62u8, 198u8, 222u8, 56u8, 158u8, 78u8, 190u8, 241u8, 153u8, - 238u8, 124u8, 77u8, 68u8, 84u8, 98u8, 39u8, 211u8, 117u8, 234u8, 166u8, - 193u8, + 7u8, 157u8, 123u8, 23u8, 63u8, 111u8, 59u8, 182u8, 75u8, 252u8, 97u8, + 241u8, 196u8, 208u8, 162u8, 42u8, 25u8, 16u8, 240u8, 5u8, 139u8, 111u8, + 226u8, 5u8, 221u8, 75u8, 141u8, 19u8, 192u8, 24u8, 38u8, 88u8, ], ) } @@ -28173,6 +28250,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A new multisig operation has begun."] @@ -28199,6 +28277,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A multisig operation has been approved by someone."] @@ -28228,6 +28307,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A multisig operation has been executed."] @@ -28260,6 +28340,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A multisig operation has been cancelled."] @@ -28469,6 +28550,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -28499,6 +28581,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -28530,6 +28613,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -28559,6 +28643,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -28587,6 +28672,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -28729,6 +28815,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A preimage has been noted."] @@ -28751,6 +28838,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A preimage has been requested."] @@ -28773,6 +28861,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A preimage has ben cleared."] @@ -28811,7 +28900,7 @@ pub mod api { pub mod preimage_for { use super::runtime_types; pub type PreimageFor = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; pub type Param0 = ::subxt::ext::subxt_core::utils::H256; @@ -29024,6 +29113,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29056,6 +29146,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29088,6 +29179,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29204,6 +29296,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct AssetRateCreated { @@ -29228,6 +29321,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct AssetRateRemoved { @@ -29250,6 +29344,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct AssetRateUpdated { @@ -29360,6 +29455,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29401,6 +29497,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29434,6 +29531,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29474,6 +29572,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29517,6 +29616,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29550,6 +29650,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29591,6 +29692,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29625,6 +29727,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29660,6 +29763,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -29953,6 +30057,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "New bounty proposal."] @@ -29975,6 +30080,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty proposal was rejected; funds were slashed."] @@ -29999,6 +30105,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty proposal is funded and became active."] @@ -30021,6 +30128,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty is awarded to a beneficiary."] @@ -30045,6 +30153,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty is claimed by beneficiary."] @@ -30071,6 +30180,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty is cancelled."] @@ -30093,6 +30203,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty expiry is extended."] @@ -30115,6 +30226,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty is approved."] @@ -30137,6 +30249,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty curator is proposed."] @@ -30161,6 +30274,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty curator is unassigned."] @@ -30183,6 +30297,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bounty curator is accepted."] @@ -30220,7 +30335,7 @@ pub mod api { pub mod bounty_descriptions { use super::runtime_types; pub type BountyDescriptions = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -30228,7 +30343,7 @@ pub mod api { pub mod bounty_approvals { use super::runtime_types; pub type BountyApprovals = - runtime_types::bounded_collections::bounded_vec::BoundedVec12< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u32, >; } @@ -30558,6 +30673,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -30609,6 +30725,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -30661,6 +30778,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -30709,6 +30827,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -30772,6 +30891,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -30823,6 +30943,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -30868,6 +30989,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -31221,6 +31343,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A child-bounty is added."] @@ -31245,6 +31368,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A child-bounty is awarded to a beneficiary."] @@ -31271,6 +31395,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A child-bounty is claimed by beneficiary."] @@ -31299,6 +31424,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A child-bounty is cancelled."] @@ -31342,7 +31468,7 @@ pub mod api { pub mod child_bounty_descriptions { use super::runtime_types; pub type ChildBountyDescriptions = - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >; pub type Param0 = ::core::primitive::u32; @@ -31669,6 +31795,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -31708,6 +31835,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -31743,6 +31871,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -31765,6 +31894,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -31803,6 +31933,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -31835,6 +31966,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -31862,6 +31994,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32057,6 +32190,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bid was successfully placed."] @@ -32083,6 +32217,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bid was successfully removed (before being accepted)."] @@ -32109,6 +32244,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bid was dropped from a queue because of another, more substantial, bid was present."] @@ -32135,6 +32271,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A bid was accepted. The balance may not be released until expiry."] @@ -32165,6 +32302,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An receipt has been (at least partially) thawed."] @@ -32195,6 +32333,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An automatic funding of the deficit was made."] @@ -32217,6 +32356,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A receipt was transferred."] @@ -32243,14 +32383,14 @@ pub mod api { pub mod queue_totals { use super::runtime_types; pub type QueueTotals = - runtime_types::bounded_collections::bounded_vec::BoundedVec15<( + runtime_types::bounded_collections::bounded_vec::BoundedVec<( ::core::primitive::u32, ::core::primitive::u128, )>; } pub mod queues { use super::runtime_types; - pub type Queues = runtime_types::bounded_collections::bounded_vec::BoundedVec25< + pub type Queues = runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::pallet_nis::pallet::Bid< ::core::primitive::u128, ::subxt::ext::subxt_core::utils::AccountId32, @@ -32636,6 +32776,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32674,6 +32815,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32712,6 +32854,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32749,6 +32892,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32794,6 +32938,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32827,6 +32972,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32862,6 +33008,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32896,6 +33043,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -32929,6 +33077,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -33190,6 +33339,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account was created with some free balance."] @@ -33214,6 +33364,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account was removed whose balance was non-zero but below ExistentialDeposit,"] @@ -33239,6 +33390,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Transfer succeeded."] @@ -33265,6 +33417,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A balance was set by root."] @@ -33289,6 +33442,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was reserved (moved from free to reserved)."] @@ -33313,6 +33467,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was unreserved (moved from reserved to free)."] @@ -33337,6 +33492,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was moved from the reserve of the first account to the second account."] @@ -33367,6 +33523,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was deposited (e.g. for transaction fees)."] @@ -33391,6 +33548,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was withdrawn from the account (e.g. for transaction fees)."] @@ -33415,6 +33573,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was removed from the account (e.g. for misbehavior)."] @@ -33439,6 +33598,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was minted into an account."] @@ -33463,6 +33623,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was burned from an account."] @@ -33487,6 +33648,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was suspended from an account (it can be restored later)."] @@ -33511,6 +33673,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some amount was restored into an account."] @@ -33535,6 +33698,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An account was upgraded."] @@ -33557,6 +33721,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Total issuance was increased by `amount`, creating a credit to be balanced."] @@ -33579,6 +33744,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Total issuance was decreased by `amount`, creating a debt to be balanced."] @@ -33601,6 +33767,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was locked."] @@ -33625,6 +33792,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was unlocked."] @@ -33649,6 +33817,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was frozen."] @@ -33673,6 +33842,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some balance was thawed."] @@ -33697,6 +33867,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The `TotalIssuance` was forcefully changed."] @@ -33735,7 +33906,7 @@ pub mod api { pub mod locks { use super::runtime_types; pub type Locks = - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec3< + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< runtime_types::pallet_balances::types::BalanceLock< ::core::primitive::u128, >, @@ -33744,19 +33915,18 @@ pub mod api { } pub mod reserves { use super::runtime_types; - pub type Reserves = - runtime_types::bounded_collections::bounded_vec::BoundedVec9< - runtime_types::pallet_balances::types::ReserveData< - [::core::primitive::u8; 8usize], - ::core::primitive::u128, - >, - >; + pub type Reserves = runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::pallet_balances::types::ReserveData< + [::core::primitive::u8; 8usize], + ::core::primitive::u128, + >, + >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } pub mod holds { use super::runtime_types; - pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec10< - runtime_types::pallet_balances::types::IdAmount< + pub type Holds = runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::frame_support::traits::tokens::misc::IdAmount< runtime_types::rococo_runtime::RuntimeHoldReason, ::core::primitive::u128, >, @@ -33765,13 +33935,12 @@ pub mod api { } pub mod freezes { use super::runtime_types; - pub type Freezes = - runtime_types::bounded_collections::bounded_vec::BoundedVec11< - runtime_types::pallet_balances::types::IdAmount< - (), - ::core::primitive::u128, - >, - >; + pub type Freezes = runtime_types::bounded_collections::bounded_vec::BoundedVec< + runtime_types::frame_support::traits::tokens::misc::IdAmount< + (), + ::core::primitive::u128, + >, + >; pub type Param0 = ::subxt::ext::subxt_core::utils::AccountId32; } } @@ -34226,6 +34395,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34252,6 +34422,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34278,6 +34449,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34304,6 +34476,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34330,6 +34503,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34356,6 +34530,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34382,6 +34557,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34411,6 +34587,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34437,6 +34614,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34463,6 +34641,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34489,6 +34668,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34515,6 +34695,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34541,6 +34722,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34567,6 +34749,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34593,6 +34776,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34621,6 +34805,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34648,6 +34833,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34674,6 +34860,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34700,6 +34887,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34726,6 +34914,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34752,6 +34941,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34778,6 +34968,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34805,6 +34996,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34831,6 +35023,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34857,6 +35050,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34883,6 +35077,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34909,6 +35104,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34935,6 +35131,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34962,6 +35159,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -34988,6 +35186,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35014,6 +35213,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35040,6 +35240,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35066,6 +35267,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35092,6 +35294,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35118,6 +35321,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35144,6 +35348,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35173,6 +35378,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35200,6 +35406,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35227,6 +35434,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35254,6 +35462,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35280,6 +35489,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35306,6 +35516,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35332,6 +35543,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35358,6 +35570,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35384,6 +35597,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35410,6 +35624,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35438,6 +35653,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -35464,6 +35680,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -36628,6 +36845,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A candidate was backed. `[candidate, head_data]`"] @@ -36659,6 +36877,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A candidate was included. `[candidate, head_data]`"] @@ -36690,6 +36909,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A candidate timed out. `[candidate, head_data]`"] @@ -36719,6 +36939,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some upward messages have been received and will be processed."] @@ -36827,6 +37048,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37100,6 +37322,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37129,6 +37352,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37158,6 +37382,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37189,6 +37414,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37218,6 +37444,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37246,6 +37473,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37286,6 +37514,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37316,6 +37545,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37346,6 +37576,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -37579,6 +37810,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Current code has been updated for a Para. `para_id`"] @@ -37599,6 +37831,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Current head has been updated for a Para. `para_id`"] @@ -37619,6 +37852,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A code upgrade has been scheduled for a Para. `para_id`"] @@ -37639,6 +37873,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A new head has been noted for a Para. `para_id`"] @@ -37659,6 +37894,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A para has been queued to execute pending actions. `para_id`"] @@ -37680,6 +37916,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The given para either initiated or subscribed to a PVF check for the given validation"] @@ -37706,6 +37943,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The given validation code was accepted by the PVF pre-checking vote."] @@ -37732,6 +37970,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The given validation code was rejected by the PVF pre-checking vote."] @@ -38914,6 +39153,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39242,6 +39482,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39282,6 +39523,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39310,6 +39552,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39340,6 +39583,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39376,6 +39620,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39409,6 +39654,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39442,6 +39688,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39478,6 +39725,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39518,6 +39766,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39558,6 +39807,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39595,6 +39845,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -39934,6 +40185,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Open HRMP channel requested."] @@ -39962,6 +40214,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An HRMP channel request sent by the receiver was canceled by either party."] @@ -39987,6 +40240,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Open HRMP channel accepted."] @@ -40011,6 +40265,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "HRMP channel closed."] @@ -40036,6 +40291,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An HRMP channel was opened via Root origin."] @@ -40064,6 +40320,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An HRMP channel was opened with a system chain."] @@ -40092,6 +40349,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An HRMP channel's deposits were updated."] @@ -41057,6 +41315,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -41100,6 +41359,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A dispute has been initiated. \\[candidate hash, dispute location\\]"] @@ -41125,6 +41385,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A dispute has concluded for or against a candidate."] @@ -41151,6 +41412,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A dispute has concluded with supermajority against a candidate."] @@ -41544,6 +41806,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -41771,6 +42034,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -41799,6 +42063,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -41911,6 +42176,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Message discarded due to an error in the `MessageProcessor` (usually a format error)."] @@ -41939,6 +42205,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Message is processed."] @@ -41968,6 +42235,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Message placed in overweight queue."] @@ -41997,6 +42265,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "This page was reaped."] @@ -42309,6 +42578,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -42325,12 +42595,11 @@ pub mod api { #[doc = ""] #[doc = "Errors:"] #[doc = "- `InsufficientBalance`: from the Currency implementation"] - #[doc = "- `InvalidParaId`"] #[doc = "- `QueueFull`"] #[doc = "- `SpotPriceHigherThanMaxAmount`"] #[doc = ""] #[doc = "Events:"] - #[doc = "- `SpotOrderPlaced`"] + #[doc = "- `OnDemandOrderPlaced`"] pub struct PlaceOrderAllowDeath { pub max_amount: place_order_allow_death::MaxAmount, pub para_id: place_order_allow_death::ParaId, @@ -42352,6 +42621,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -42368,12 +42638,11 @@ pub mod api { #[doc = ""] #[doc = "Errors:"] #[doc = "- `InsufficientBalance`: from the Currency implementation"] - #[doc = "- `InvalidParaId`"] #[doc = "- `QueueFull`"] #[doc = "- `SpotPriceHigherThanMaxAmount`"] #[doc = ""] #[doc = "Events:"] - #[doc = "- `SpotOrderPlaced`"] + #[doc = "- `OnDemandOrderPlaced`"] pub struct PlaceOrderKeepAlive { pub max_amount: place_order_keep_alive::MaxAmount, pub para_id: place_order_keep_alive::ParaId, @@ -42400,12 +42669,11 @@ pub mod api { #[doc = ""] #[doc = "Errors:"] #[doc = "- `InsufficientBalance`: from the Currency implementation"] - #[doc = "- `InvalidParaId`"] #[doc = "- `QueueFull`"] #[doc = "- `SpotPriceHigherThanMaxAmount`"] #[doc = ""] #[doc = "Events:"] - #[doc = "- `SpotOrderPlaced`"] + #[doc = "- `OnDemandOrderPlaced`"] pub fn place_order_allow_death( &self, max_amount: types::place_order_allow_death::MaxAmount, @@ -42437,12 +42705,11 @@ pub mod api { #[doc = ""] #[doc = "Errors:"] #[doc = "- `InsufficientBalance`: from the Currency implementation"] - #[doc = "- `InvalidParaId`"] #[doc = "- `QueueFull`"] #[doc = "- `SpotPriceHigherThanMaxAmount`"] #[doc = ""] #[doc = "Events:"] - #[doc = "- `SpotOrderPlaced`"] + #[doc = "- `OnDemandOrderPlaced`"] pub fn place_order_keep_alive( &self, max_amount: types::place_order_keep_alive::MaxAmount, @@ -42478,17 +42745,20 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "An order was placed at some spot price amount."] + #[doc = "An order was placed at some spot price amount by orderer ordered_by"] pub struct OnDemandOrderPlaced { pub para_id: on_demand_order_placed::ParaId, pub spot_price: on_demand_order_placed::SpotPrice, + pub ordered_by: on_demand_order_placed::OrderedBy, } pub mod on_demand_order_placed { use super::runtime_types; pub type ParaId = runtime_types::polkadot_parachain_primitives::primitives::Id; pub type SpotPrice = ::core::primitive::u128; + pub type OrderedBy = ::subxt::ext::subxt_core::utils::AccountId32; } impl ::subxt::ext::subxt_core::events::StaticEvent for OnDemandOrderPlaced { const PALLET: &'static str = "OnDemandAssignmentProvider"; @@ -42502,19 +42772,20 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - #[doc = "The value of the spot traffic multiplier changed."] - pub struct SpotTrafficSet { - pub traffic: spot_traffic_set::Traffic, + #[doc = "The value of the spot price has likely changed"] + pub struct SpotPriceSet { + pub spot_price: spot_price_set::SpotPrice, } - pub mod spot_traffic_set { + pub mod spot_price_set { use super::runtime_types; - pub type Traffic = runtime_types::sp_arithmetic::fixed_point::FixedU128; + pub type SpotPrice = ::core::primitive::u128; } - impl ::subxt::ext::subxt_core::events::StaticEvent for SpotTrafficSet { + impl ::subxt::ext::subxt_core::events::StaticEvent for SpotPriceSet { const PALLET: &'static str = "OnDemandAssignmentProvider"; - const EVENT: &'static str = "SpotTrafficSet"; + const EVENT: &'static str = "SpotPriceSet"; } } pub mod storage { @@ -42888,6 +43159,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -42939,6 +43211,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -42980,6 +43253,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43009,6 +43283,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43048,6 +43323,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43077,6 +43353,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43113,6 +43390,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43143,6 +43421,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43182,6 +43461,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43472,6 +43752,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Registered { @@ -43495,6 +43776,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Deregistered { @@ -43516,6 +43798,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Reserved { @@ -43539,6 +43822,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Swapped { @@ -43769,6 +44053,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43806,6 +44091,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43834,6 +44120,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -43948,6 +44235,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A new `[lease_period]` is beginning."] @@ -43970,6 +44258,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A para has won the right to a continuous set of lease periods as a parachain."] @@ -44157,6 +44446,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -44191,6 +44481,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -44245,6 +44536,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -44362,6 +44654,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An auction started. Provides its index and the block number where it will begin to"] @@ -44389,6 +44682,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An auction ended. All funds become unreserved."] @@ -44411,6 +44705,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Funds were reserved for a winning bid. First balance is the extra amount reserved."] @@ -44438,6 +44733,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Funds were unreserved since bidder is no longer active. `[bidder, amount]`"] @@ -44462,6 +44758,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Someone attempted to lease the same slot twice for a parachain. The amount is held in"] @@ -44489,6 +44786,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A new bid has been accepted as the current winner."] @@ -44519,6 +44817,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The winning offset was chosen for an auction. This will map into the `Winning` storage"] @@ -44852,6 +45151,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -44898,6 +45198,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -44932,6 +45233,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -44977,6 +45279,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -45008,6 +45311,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -45035,6 +45339,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -45079,6 +45384,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -45110,6 +45416,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -45138,6 +45445,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -45404,6 +45712,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Create a new crowdloaning campaign."] @@ -45426,6 +45735,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Contributed to a crowd sale."] @@ -45452,6 +45762,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Withdrew full balance of a contributor."] @@ -45478,6 +45789,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The loans in a fund have been partially dissolved, i.e. there are some left"] @@ -45501,6 +45813,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "All loans in a fund have been refunded."] @@ -45523,6 +45836,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Fund is dissolved."] @@ -45545,6 +45859,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The result of trying to submit a new bid to the Slots pallet."] @@ -45570,6 +45885,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The configuration to a crowdloan has been edited."] @@ -45592,6 +45908,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A memo has been updated."] @@ -45618,6 +45935,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A parachain has been moved to `NewRaise`"] @@ -45860,6 +46178,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -45891,6 +46210,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -45999,6 +46319,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The broker chain has asked for revenue information for a specific block."] @@ -46021,6 +46342,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A core has received a new assignment from the broker chain."] @@ -46081,6 +46403,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46094,7 +46417,7 @@ pub mod api { pub mod send { use super::runtime_types; pub type Dest = runtime_types::xcm::VersionedLocation; - pub type Message = runtime_types::xcm::VersionedXcm1; + pub type Message = runtime_types::xcm::VersionedXcm; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Send { const PALLET: &'static str = "XcmPallet"; @@ -46108,6 +46431,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46159,6 +46483,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46225,6 +46550,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46245,7 +46571,7 @@ pub mod api { } pub mod execute { use super::runtime_types; - pub type Message = runtime_types::xcm::VersionedXcm2; + pub type Message = runtime_types::xcm::VersionedXcm; pub type MaxWeight = runtime_types::sp_weights::weight_v2::Weight; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for Execute { @@ -46260,6 +46586,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46294,6 +46621,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46324,6 +46652,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46355,6 +46684,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46388,6 +46718,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46457,6 +46788,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46513,6 +46845,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46542,6 +46875,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46610,6 +46944,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46644,6 +46979,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -46728,7 +47064,7 @@ pub mod api { pub type RemoteFeesId = runtime_types::xcm::VersionedAssetId; pub type FeesTransferType = runtime_types::staging_xcm_executor::traits::asset_transfer::TransferType; - pub type CustomXcmOnDest = runtime_types::xcm::VersionedXcm1; + pub type CustomXcmOnDest = runtime_types::xcm::VersionedXcm; pub type WeightLimit = runtime_types::xcm::v3::WeightLimit; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for TransferAssetsUsingTypeAndThen { @@ -47306,6 +47642,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Execution of an XCM message was attempted."] @@ -47328,6 +47665,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A XCM message was sent."] @@ -47341,7 +47679,7 @@ pub mod api { use super::runtime_types; 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::Xcm1; + pub type Message = runtime_types::staging_xcm::v4::Xcm; pub type MessageId = [::core::primitive::u8; 32usize]; } impl ::subxt::ext::subxt_core::events::StaticEvent for Sent { @@ -47356,6 +47694,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Query response received which does not match a registered query. This may be because a"] @@ -47382,6 +47721,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Query response has been received and is ready for taking with `take_response`. There is"] @@ -47407,6 +47747,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Query response has been received and query is removed. The registered notification has"] @@ -47434,6 +47775,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Query response has been received and query is removed. The registered notification"] @@ -47466,6 +47808,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Query response has been received and query is removed. There was a general error with"] @@ -47493,6 +47836,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Query response has been received and query is removed. The dispatch was unable to be"] @@ -47521,6 +47865,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Expected query response has been received but the origin location of the response does"] @@ -47550,6 +47895,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Expected query response has been received but the expected origin location placed in"] @@ -47580,6 +47926,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Received query response has been read and removed."] @@ -47602,6 +47949,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some assets have been placed in an asset trap."] @@ -47628,6 +47976,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "An XCM version change notification message has been attempted to be sent."] @@ -47658,6 +48007,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The supported version of a location has been changed. This might be through an"] @@ -47683,6 +48033,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A given location which had a version change subscription was dropped owing to an error"] @@ -47710,6 +48061,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A given location which had a version change subscription was dropped owing to an error"] @@ -47735,6 +48087,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Expected query response has been received but the expected querier location placed in"] @@ -47765,6 +48118,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Expected query response has been received but the querier location of the response does"] @@ -47796,6 +48150,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A remote has requested XCM version change notification from us and we have honored it."] @@ -47823,6 +48178,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "We have requested that a remote chain send us XCM version change notifications."] @@ -47849,6 +48205,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "We have requested that a remote chain stops sending us XCM version change"] @@ -47876,6 +48233,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Fees were paid from a location for an operation (often for using `SendXcm`)."] @@ -47900,6 +48258,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some assets have been claimed from an asset trap"] @@ -47926,6 +48285,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A XCM version migration finished."] @@ -47989,7 +48349,7 @@ pub mod api { pub mod version_discovery_queue { use super::runtime_types; pub type VersionDiscoveryQueue = - runtime_types::bounded_collections::bounded_vec::BoundedVec26<( + runtime_types::bounded_collections::bounded_vec::BoundedVec<( runtime_types::xcm::VersionedLocation, ::core::primitive::u32, )>; @@ -48010,7 +48370,7 @@ pub mod api { pub mod locked_fungibles { use super::runtime_types; pub type LockedFungibles = - runtime_types::bounded_collections::bounded_vec::BoundedVec28<( + runtime_types::bounded_collections::bounded_vec::BoundedVec<( ::core::primitive::u128, runtime_types::xcm::VersionedLocation, )>; @@ -48026,7 +48386,7 @@ pub mod api { } pub mod recorded_xcm { use super::runtime_types; - pub type RecordedXcm = runtime_types::staging_xcm::v4::Xcm1; + pub type RecordedXcm = runtime_types::staging_xcm::v4::Xcm; } } pub struct StorageApi; @@ -48761,6 +49121,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -48799,6 +49160,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -48842,6 +49204,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -48955,7 +49318,7 @@ pub mod api { pub mod authorities { use super::runtime_types; pub type Authorities = - runtime_types::bounded_collections::bounded_vec::BoundedVec29< + runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, >; } @@ -48966,7 +49329,7 @@ pub mod api { pub mod next_authorities { use super::runtime_types; pub type NextAuthorities = - runtime_types::bounded_collections::bounded_vec::BoundedVec29< + runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, >; } @@ -49413,6 +49776,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49440,6 +49804,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49514,6 +49879,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The identity and all sub accounts were reaped for `who`."] @@ -49536,6 +49902,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The deposits held for `who` were updated. `identity` is the new deposit held for"] @@ -49578,6 +49945,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49611,6 +49979,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49637,6 +50006,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49663,6 +50033,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49689,6 +50060,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49707,7 +50079,7 @@ pub mod api { pub mod sudo_queue_downward_xcm { use super::runtime_types; pub type Id = runtime_types::polkadot_parachain_primitives::primitives::Id; - pub type Xcm = runtime_types::xcm::VersionedXcm1; + pub type Xcm = runtime_types::xcm::VersionedXcm; } impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for SudoQueueDownwardXcm { const PALLET: &'static str = "ParasSudoWrapper"; @@ -49721,6 +50093,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49908,6 +50281,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49934,6 +50308,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49964,6 +50339,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -49990,6 +50366,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50016,6 +50393,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50148,6 +50526,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A parachain was assigned a permanent parachain slot"] @@ -50168,6 +50547,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A parachain was assigned a temporary parachain slot"] @@ -50188,6 +50568,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The maximum number of permanent slots has been changed"] @@ -50210,6 +50591,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The maximum number of temporary slots has been changed"] @@ -50547,6 +50929,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50577,6 +50960,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50656,6 +51040,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "New validators were added to the set."] @@ -50678,6 +51063,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Validators were removed from the set."] @@ -50779,6 +51165,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50809,6 +51196,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50861,6 +51249,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50894,6 +51283,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50932,6 +51322,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -50959,6 +51350,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -51165,6 +51557,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Given number of `(top, child)` keys were migrated respectively, with the given"] @@ -51193,6 +51586,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Some account got slashed by the given amount."] @@ -51217,6 +51611,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The auto migration task finished."] @@ -51233,6 +51628,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Migration got halted due to an error or miss-configuration."] @@ -51407,6 +51803,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -51433,6 +51830,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -51494,6 +51892,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "Event dispatched when the trigger_defensive extrinsic is called."] @@ -51525,6 +51924,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -51551,6 +51951,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -51584,6 +51985,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -51614,6 +52016,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -51648,6 +52051,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -51678,9 +52082,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 46u8, 16u8, 20u8, 107u8, 59u8, 50u8, 4u8, 187u8, 29u8, 249u8, 99u8, - 223u8, 124u8, 129u8, 32u8, 127u8, 131u8, 151u8, 121u8, 35u8, 161u8, - 23u8, 58u8, 87u8, 179u8, 138u8, 152u8, 56u8, 142u8, 146u8, 59u8, 214u8, + 52u8, 250u8, 180u8, 149u8, 25u8, 228u8, 82u8, 212u8, 76u8, 52u8, 200u8, + 56u8, 94u8, 78u8, 240u8, 148u8, 65u8, 169u8, 253u8, 147u8, 189u8, + 139u8, 150u8, 220u8, 112u8, 229u8, 71u8, 207u8, 29u8, 196u8, 229u8, + 76u8, ], ) } @@ -51703,9 +52108,10 @@ pub mod api { weight, }, [ - 188u8, 153u8, 76u8, 172u8, 157u8, 192u8, 16u8, 161u8, 38u8, 139u8, - 216u8, 93u8, 75u8, 252u8, 13u8, 142u8, 139u8, 96u8, 127u8, 30u8, 119u8, - 223u8, 121u8, 47u8, 193u8, 162u8, 82u8, 86u8, 69u8, 54u8, 143u8, 178u8, + 3u8, 94u8, 124u8, 177u8, 77u8, 148u8, 195u8, 27u8, 235u8, 160u8, 199u8, + 182u8, 27u8, 214u8, 206u8, 115u8, 123u8, 82u8, 235u8, 171u8, 102u8, + 107u8, 10u8, 231u8, 98u8, 243u8, 139u8, 229u8, 19u8, 61u8, 229u8, + 237u8, ], ) } @@ -51745,9 +52151,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 166u8, 117u8, 117u8, 101u8, 13u8, 182u8, 157u8, 33u8, 28u8, 175u8, - 198u8, 32u8, 102u8, 46u8, 149u8, 245u8, 50u8, 135u8, 191u8, 91u8, 69u8, - 112u8, 95u8, 150u8, 127u8, 105u8, 97u8, 86u8, 181u8, 189u8, 73u8, 40u8, + 137u8, 137u8, 109u8, 207u8, 88u8, 23u8, 193u8, 224u8, 76u8, 159u8, + 17u8, 76u8, 117u8, 113u8, 111u8, 217u8, 148u8, 35u8, 97u8, 26u8, 9u8, + 181u8, 113u8, 65u8, 46u8, 171u8, 178u8, 182u8, 125u8, 222u8, 180u8, + 212u8, ], ) } @@ -51784,6 +52191,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A sudo call just took place."] @@ -51807,6 +52215,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The sudo key has been updated."] @@ -51831,6 +52240,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "The key was permanently removed."] @@ -51847,6 +52257,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] #[doc = "A [sudo_as](Pallet::sudo_as) call just took place."] @@ -51912,433 +52323,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct BoundedVec1<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec10<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec11<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec12<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec13<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec14<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec15<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec16<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec17<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec18<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec19<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec2<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec20<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec21<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec22<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec23<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec24<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec25<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec26<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec27<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec28<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec29<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec3<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec4<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec5<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec6<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec7<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec8<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct BoundedVec9<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); + pub struct BoundedVec<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); } pub mod weak_bounded_vec { use super::runtime_types; @@ -52350,73 +52342,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct WeakBoundedVec1<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct WeakBoundedVec2<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct WeakBoundedVec3<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct WeakBoundedVec4<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct WeakBoundedVec5<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); + pub struct WeakBoundedVec<_0>(pub ::subxt::ext::subxt_core::alloc::vec::Vec<_0>); } } pub mod finality_grandpa { @@ -52429,25 +52362,10 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub struct Equivocation1<_0, _1, _2> { - pub round_number: ::core::primitive::u64, - pub identity: _0, - pub first: (_1, _2), - pub second: (_1, _2), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub struct Equivocation2<_0, _1, _2> { + pub struct Equivocation<_0, _1, _2> { pub round_number: ::core::primitive::u64, pub identity: _0, pub first: (_1, _2), @@ -52461,6 +52379,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Precommit<_0, _1> { @@ -52475,6 +52394,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Prevote<_0, _1> { @@ -52482,6 +52402,40 @@ pub mod api { pub target_number: _1, } } + pub mod frame_metadata_hash_extension { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct CheckMetadataHash { + pub mode: runtime_types::frame_metadata_hash_extension::Mode, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub enum Mode { + #[codec(index = 0)] + Disabled, + #[codec(index = 1)] + Enabled, + } + } pub mod frame_support { use super::runtime_types; pub mod dispatch { @@ -52494,6 +52448,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52516,6 +52471,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52535,6 +52491,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52555,6 +52512,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52574,6 +52532,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52593,6 +52552,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52620,6 +52580,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52651,6 +52612,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52664,7 +52626,7 @@ pub mod api { }, #[codec(index = 1)] Inline( - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, ), @@ -52686,6 +52648,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52712,6 +52675,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52730,6 +52694,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52742,6 +52707,25 @@ pub mod api { #[codec(index = 1)] Reserved, } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct IdAmount<_0, _1> { + pub id: _0, + pub amount: _1, + } } } } @@ -52753,6 +52737,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct PalletId(pub [::core::primitive::u8; 8usize]); @@ -52771,6 +52756,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52789,6 +52775,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52807,6 +52794,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52825,6 +52813,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52843,6 +52832,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52861,6 +52851,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52879,6 +52870,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52898,6 +52890,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52917,6 +52910,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52938,6 +52932,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -52964,6 +52959,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53066,6 +53062,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53114,6 +53111,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53168,6 +53166,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct AccountInfo<_0, _1> { @@ -53185,6 +53184,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct CodeUpgradeAuthorization { @@ -53199,6 +53199,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct EventRecord<_0, _1> { @@ -53214,6 +53215,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct LastRuntimeUpgradeInfo { @@ -53229,6 +53231,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum Phase { @@ -53252,6 +53255,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53301,6 +53305,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53327,6 +53332,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53368,6 +53374,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53429,6 +53436,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53464,6 +53472,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53611,6 +53620,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53664,6 +53674,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53815,6 +53826,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53835,6 +53847,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53855,6 +53868,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53875,6 +53889,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53890,24 +53905,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct IdAmount<_0, _1> { - pub id: _0, - pub amount: _1, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53930,6 +53928,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -53954,6 +53953,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54014,6 +54014,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54049,6 +54050,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54209,6 +54211,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54260,6 +54263,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54327,6 +54331,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Bounty<_0, _1, _2> { @@ -54345,6 +54350,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum BountyStatus<_0, _1> { @@ -54378,6 +54384,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54406,6 +54413,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54626,6 +54634,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54652,6 +54661,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54697,6 +54707,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ChildBounty<_0, _1, _2> { @@ -54714,6 +54725,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum ChildBountyStatus<_0, _1> { @@ -54743,6 +54755,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54776,6 +54789,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54935,6 +54949,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -54989,6 +55004,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55018,6 +55034,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55036,6 +55053,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55058,6 +55076,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55083,6 +55102,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55090,7 +55110,7 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct Casting<_0, _1, _2> { - pub votes: runtime_types::bounded_collections::bounded_vec::BoundedVec13<( + pub votes: runtime_types::bounded_collections::bounded_vec::BoundedVec<( _1, runtime_types::pallet_conviction_voting::vote::AccountVote<_0>, )>, @@ -55108,6 +55128,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55130,6 +55151,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55146,6 +55168,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55161,6 +55184,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55190,6 +55214,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55257,6 +55282,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55297,6 +55323,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55329,13 +55356,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct StoredPendingChange<_0> { pub scheduled_at: _0, pub delay: _0, pub next_authorities: - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec4<( + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec<( runtime_types::sp_consensus_grandpa::app::Public, ::core::primitive::u64, )>, @@ -55349,6 +55377,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum StoredState<_0> { @@ -55374,6 +55403,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55381,7 +55411,7 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct IdentityInfo { - pub additional: runtime_types::bounded_collections::bounded_vec::BoundedVec1<( + pub additional: runtime_types::bounded_collections::bounded_vec::BoundedVec<( runtime_types::pallet_identity::types::Data, runtime_types::pallet_identity::types::Data, )>, @@ -55405,6 +55435,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55691,7 +55722,7 @@ pub mod api { #[doc = "Accept a given username that an `authority` granted. The call must include the full"] #[doc = "username, as in `username.suffix`."] accept_username { - username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, }, @@ -55700,14 +55731,14 @@ pub mod api { #[doc = "accepted by the user and must now be beyond its expiration. The call must include the"] #[doc = "full username, as in `username.suffix`."] remove_expired_approval { - username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, }, #[codec(index = 20)] #[doc = "Set a given username as the primary. The username should include the suffix."] set_primary_username { - username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, }, @@ -55715,7 +55746,7 @@ pub mod api { #[doc = "Remove a username that corresponds to an account with no identity. Exists when a user"] #[doc = "gets a username but then calls `clear_identity`."] remove_dangling_username { - username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, }, @@ -55728,6 +55759,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55823,6 +55855,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55907,7 +55940,7 @@ pub mod api { #[doc = "A username was set for `who`."] UsernameSet { who: ::subxt::ext::subxt_core::utils::AccountId32, - username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, }, @@ -55915,7 +55948,7 @@ pub mod api { #[doc = "A username was queued, but `who` must accept it prior to `expiration`."] UsernameQueued { who: ::subxt::ext::subxt_core::utils::AccountId32, - username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, expiration: ::core::primitive::u32, @@ -55929,7 +55962,7 @@ pub mod api { #[doc = "A username was set as a primary and can be looked up from `who`."] PrimaryUsernameSet { who: ::subxt::ext::subxt_core::utils::AccountId32, - username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, }, @@ -55938,7 +55971,7 @@ pub mod api { #[doc = "identity) has been removed."] DanglingUsernameRemoved { who: ::subxt::ext::subxt_core::utils::AccountId32, - username: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + username: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, }, @@ -55954,6 +55987,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -55972,6 +56006,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56064,6 +56099,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56094,6 +56130,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56113,6 +56150,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56120,11 +56158,10 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct Registration<_0, _2> { - pub judgements: - runtime_types::bounded_collections::bounded_vec::BoundedVec17<( - ::core::primitive::u32, - runtime_types::pallet_identity::types::Judgement<_0>, - )>, + pub judgements: runtime_types::bounded_collections::bounded_vec::BoundedVec<( + ::core::primitive::u32, + runtime_types::pallet_identity::types::Judgement<_0>, + )>, pub deposit: _0, pub info: _2, } @@ -56142,6 +56179,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56243,6 +56281,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56275,6 +56314,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56313,6 +56353,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56330,6 +56371,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56380,6 +56422,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56398,6 +56441,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct BookState<_0> { @@ -56417,6 +56461,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Neighbours<_0> { @@ -56431,6 +56476,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Page<_0> { @@ -56439,7 +56485,7 @@ pub mod api { pub first_index: _0, pub first: _0, pub last: _0, - pub heap: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub heap: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, } @@ -56456,6 +56502,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56620,6 +56667,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56679,6 +56727,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56733,13 +56782,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Multisig<_0, _1, _2> { pub when: runtime_types::pallet_multisig::Timepoint<_0>, pub deposit: _1, pub depositor: _2, - pub approvals: runtime_types::bounded_collections::bounded_vec::BoundedVec18<_2>, + pub approvals: runtime_types::bounded_collections::bounded_vec::BoundedVec<_2>, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -56749,6 +56799,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Timepoint<_0> { @@ -56768,6 +56819,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56786,6 +56838,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56877,6 +56930,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -56940,6 +56994,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57006,6 +57061,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57024,6 +57080,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57043,6 +57100,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57070,6 +57128,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57101,6 +57160,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57126,6 +57186,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57162,6 +57223,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57221,6 +57283,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57253,6 +57316,9 @@ pub mod api { #[codec(index = 7)] #[doc = "Too few hashes were requested to be upgraded (i.e. zero)."] TooFew, + #[codec(index = 8)] + #[doc = "No ticket with a cost was returned by [`Config::Consideration`] to store the preimage."] + NoCost, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -57262,6 +57328,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57294,6 +57361,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57313,6 +57381,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum OldRequestStatus<_0, _1> { @@ -57336,6 +57405,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum RequestStatus<_0, _1> { @@ -57364,6 +57434,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57583,6 +57654,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57624,6 +57696,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57680,6 +57753,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Announcement<_0, _1, _2> { @@ -57695,6 +57769,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ProxyDefinition<_0, _1, _2> { @@ -57715,6 +57790,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57834,6 +57910,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57881,6 +57958,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -57932,6 +58010,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct MemberRecord { @@ -57945,6 +58024,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Tally { @@ -57960,6 +58040,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VoteRecord { @@ -57981,6 +58062,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58161,6 +58243,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58226,6 +58309,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58279,6 +58363,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ActiveRecovery<_0, _1, _2> { @@ -58294,6 +58379,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct RecoveryConfig<_0, _1, _2> { @@ -58315,6 +58401,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58428,6 +58515,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58487,6 +58575,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58613,6 +58702,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58730,6 +58820,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58765,6 +58856,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58783,6 +58875,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58801,84 +58894,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum ReferendumInfo1<_0, _1, _2, _3, _4, _5, _6, _7> { - #[codec(index = 0)] - Ongoing( - runtime_types::pallet_referenda::types::ReferendumStatus< - _0, - _1, - _2, - _3, - _4, - _5, - _6, - _7, - >, - ), - #[codec(index = 1)] - Approved( - _2, - ::core::option::Option< - runtime_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ::core::option::Option< - runtime_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ), - #[codec(index = 2)] - Rejected( - _2, - ::core::option::Option< - runtime_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ::core::option::Option< - runtime_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ), - #[codec(index = 3)] - Cancelled( - _2, - ::core::option::Option< - runtime_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ::core::option::Option< - runtime_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ), - #[codec(index = 4)] - TimedOut( - _2, - ::core::option::Option< - runtime_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ::core::option::Option< - runtime_types::pallet_referenda::types::Deposit<_6, _4>, - >, - ), - #[codec(index = 5)] - Killed(_2), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum ReferendumInfo2<_0, _1, _2, _3, _4, _5, _6, _7> { + pub enum ReferendumInfo<_0, _1, _2, _3, _4, _5, _6, _7> { #[codec(index = 0)] Ongoing( runtime_types::pallet_referenda::types::ReferendumStatus< @@ -58943,6 +58966,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -58974,6 +58998,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59005,6 +59030,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59029,6 +59055,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59055,6 +59082,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59183,6 +59211,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59215,6 +59244,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59292,6 +59322,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct RetryConfig<_0> { @@ -59307,6 +59338,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Scheduled<_0, _1, _2, _3, _4> { @@ -59331,6 +59363,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59376,6 +59409,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59408,6 +59442,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59437,6 +59472,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59681,6 +59717,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59794,6 +59831,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -59909,6 +59947,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Bid<_0, _1> { @@ -59924,6 +59963,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum BidKind<_0, _1> { @@ -59940,6 +59980,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Candidacy<_0, _1> { @@ -59957,6 +59998,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct GroupParams<_0> { @@ -59973,6 +60015,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct IntakeRecord<_0, _1> { @@ -59988,6 +60031,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct MemberRecord { @@ -60004,6 +60048,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct PayoutRecord<_0, _1> { @@ -60018,6 +60063,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Tally { @@ -60032,6 +60078,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Vote { @@ -60046,6 +60093,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VouchingStatus { @@ -60067,6 +60115,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60166,6 +60215,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60207,6 +60257,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60247,6 +60298,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60265,6 +60317,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60285,6 +60338,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60303,6 +60357,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60325,6 +60380,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60336,7 +60392,7 @@ pub mod api { ToStart, #[codec(index = 1)] LastKey( - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, ), @@ -60357,6 +60413,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60421,6 +60478,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60441,6 +60499,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60485,6 +60544,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60532,6 +60592,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60560,6 +60621,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60580,6 +60642,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60599,6 +60662,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60619,6 +60683,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ChargeTransactionPayment(#[codec(compact)] pub ::core::primitive::u128); @@ -60630,6 +60695,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum Releases { @@ -60651,6 +60717,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60659,73 +60726,6 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - #[codec(index = 0)] - #[doc = "Put forward a suggestion for spending."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be signed."] - #[doc = ""] - #[doc = "## Details"] - #[doc = "A deposit proportional to the value is reserved and slashed if the proposal is rejected."] - #[doc = "It is returned once the proposal is awarded."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = "- O(1)"] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "Emits [`Event::Proposed`] if successful."] - propose_spend { - #[codec(compact)] - value: ::core::primitive::u128, - beneficiary: ::subxt::ext::subxt_core::utils::MultiAddress< - ::subxt::ext::subxt_core::utils::AccountId32, - (), - >, - }, - #[codec(index = 1)] - #[doc = "Reject a proposed spend."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be [`Config::RejectOrigin`]."] - #[doc = ""] - #[doc = "## Details"] - #[doc = "The original deposit will be slashed."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = "- O(1)"] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "Emits [`Event::Rejected`] if successful."] - reject_proposal { - #[codec(compact)] - proposal_id: ::core::primitive::u32, - }, - #[codec(index = 2)] - #[doc = "Approve a proposal."] - #[doc = ""] - #[doc = "## Dispatch Origin"] - #[doc = ""] - #[doc = "Must be [`Config::ApproveOrigin`]."] - #[doc = ""] - #[doc = "## Details"] - #[doc = ""] - #[doc = "At a later time, the proposal will be allocated to the beneficiary and the original"] - #[doc = "deposit will be returned."] - #[doc = ""] - #[doc = "### Complexity"] - #[doc = " - O(1)."] - #[doc = ""] - #[doc = "## Events"] - #[doc = ""] - #[doc = "No events are emitted from this dispatch."] - approve_proposal { - #[codec(compact)] - proposal_id: ::core::primitive::u32, - }, #[codec(index = 3)] #[doc = "Propose and approve a spend of treasury funds."] #[doc = ""] @@ -60821,7 +60821,7 @@ pub mod api { #[doc = ""] #[doc = "## Dispatch Origin"] #[doc = ""] - #[doc = "Must be signed."] + #[doc = "Must be signed"] #[doc = ""] #[doc = "## Details"] #[doc = ""] @@ -60885,6 +60885,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60894,40 +60895,37 @@ pub mod api { #[doc = "Error for the treasury pallet."] pub enum Error { #[codec(index = 0)] - #[doc = "Proposer's balance is too low."] - InsufficientProposersBalance, - #[codec(index = 1)] #[doc = "No proposal, bounty or spend at that index."] InvalidIndex, - #[codec(index = 2)] + #[codec(index = 1)] #[doc = "Too many approvals in the queue."] TooManyApprovals, - #[codec(index = 3)] + #[codec(index = 2)] #[doc = "The spend origin is valid but the amount it is allowed to spend is lower than the"] #[doc = "amount to be spent."] InsufficientPermission, - #[codec(index = 4)] + #[codec(index = 3)] #[doc = "Proposal has not been approved."] ProposalNotApproved, - #[codec(index = 5)] + #[codec(index = 4)] #[doc = "The balance of the asset kind is not convertible to the balance of the native asset."] FailedToConvertBalance, - #[codec(index = 6)] + #[codec(index = 5)] #[doc = "The spend has expired and cannot be claimed."] SpendExpired, - #[codec(index = 7)] + #[codec(index = 6)] #[doc = "The spend is not yet eligible for payout."] EarlyPayout, - #[codec(index = 8)] + #[codec(index = 7)] #[doc = "The payment has already been attempted."] AlreadyAttempted, - #[codec(index = 9)] + #[codec(index = 8)] #[doc = "There was some issue with the mechanism of payment."] PayoutError, - #[codec(index = 10)] + #[codec(index = 9)] #[doc = "The payout was not yet attempted/claimed."] NotAttempted, - #[codec(index = 11)] + #[codec(index = 10)] #[doc = "The payment has neither failed nor succeeded yet."] Inconclusive, } @@ -60939,6 +60937,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -60948,55 +60947,44 @@ pub mod api { #[doc = "The `Event` enum of this pallet"] pub enum Event { #[codec(index = 0)] - #[doc = "New proposal."] - Proposed { - proposal_index: ::core::primitive::u32, - }, - #[codec(index = 1)] #[doc = "We have ended a spend period and will now allocate funds."] Spending { budget_remaining: ::core::primitive::u128, }, - #[codec(index = 2)] + #[codec(index = 1)] #[doc = "Some funds have been allocated."] Awarded { proposal_index: ::core::primitive::u32, award: ::core::primitive::u128, account: ::subxt::ext::subxt_core::utils::AccountId32, }, - #[codec(index = 3)] - #[doc = "A proposal was rejected; funds were slashed."] - Rejected { - proposal_index: ::core::primitive::u32, - slashed: ::core::primitive::u128, - }, - #[codec(index = 4)] + #[codec(index = 2)] #[doc = "Some of our funds have been burnt."] Burnt { burnt_funds: ::core::primitive::u128, }, - #[codec(index = 5)] + #[codec(index = 3)] #[doc = "Spending has finished; this is the amount that rolls over until next spend."] Rollover { rollover_balance: ::core::primitive::u128, }, - #[codec(index = 6)] + #[codec(index = 4)] #[doc = "Some funds have been deposited."] Deposit { value: ::core::primitive::u128 }, - #[codec(index = 7)] + #[codec(index = 5)] #[doc = "A new spend proposal has been approved."] SpendApproved { proposal_index: ::core::primitive::u32, amount: ::core::primitive::u128, beneficiary: ::subxt::ext::subxt_core::utils::AccountId32, }, - #[codec(index = 8)] + #[codec(index = 6)] #[doc = "The inactive funds of the pallet have been updated."] UpdatedInactive { reactivated: ::core::primitive::u128, deactivated: ::core::primitive::u128, }, - #[codec(index = 9)] + #[codec(index = 7)] #[doc = "A new asset spend proposal has been approved."] AssetSpendApproved { index: ::core::primitive::u32, @@ -61007,22 +60995,22 @@ pub mod api { valid_from: ::core::primitive::u32, expire_at: ::core::primitive::u32, }, - #[codec(index = 10)] + #[codec(index = 8)] #[doc = "An approved spend was voided."] AssetSpendVoided { index: ::core::primitive::u32 }, - #[codec(index = 11)] + #[codec(index = 9)] #[doc = "A payment happened."] Paid { index: ::core::primitive::u32, payment_id: ::core::primitive::u64, }, - #[codec(index = 12)] + #[codec(index = 10)] #[doc = "A payment failed and can be retried."] PaymentFailed { index: ::core::primitive::u32, payment_id: ::core::primitive::u64, }, - #[codec(index = 13)] + #[codec(index = 11)] #[doc = "A spend was processed and removed from the storage. It might have been successfully"] #[doc = "paid or it may have expired."] SpendProcessed { index: ::core::primitive::u32 }, @@ -61036,6 +61024,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum PaymentState<_0> { @@ -61054,6 +61043,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Proposal<_0, _1> { @@ -61070,6 +61060,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct SpendStatus<_0, _1, _2, _3, _4> { @@ -61093,6 +61084,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61220,6 +61212,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61240,6 +61233,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61290,6 +61284,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61429,6 +61424,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61462,6 +61458,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61494,6 +61491,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61514,6 +61512,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum Releases { @@ -61535,6 +61534,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61572,6 +61572,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61604,6 +61605,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61645,6 +61647,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61653,7 +61656,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm1 > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm2 > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v4 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = " notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = " `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = " to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = " and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = " assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = " from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = " the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = " mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = " This is usually as simple as:"] # [doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = " but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = " parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = " transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm1 > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , } + # [codec (index = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v4 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = " notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = " `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = " to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = " and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = " assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = " from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = " the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = " mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = " This is usually as simple as:"] # [doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = " but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = " parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = " transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -61662,6 +61665,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61754,6 +61758,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61772,7 +61777,7 @@ pub mod api { Sent { origin: runtime_types::staging_xcm::v4::location::Location, destination: runtime_types::staging_xcm::v4::location::Location, - message: runtime_types::staging_xcm::v4::Xcm1, + message: runtime_types::staging_xcm::v4::Xcm, message_id: [::core::primitive::u8; 32usize], }, #[codec(index = 2)] @@ -61963,6 +61968,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -61983,6 +61989,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62018,6 +62025,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62028,7 +62036,7 @@ pub mod api { pub amount: ::core::primitive::u128, pub owner: runtime_types::xcm::VersionedLocation, pub locker: runtime_types::xcm::VersionedLocation, - pub consumers: runtime_types::bounded_collections::bounded_vec::BoundedVec27<( + pub consumers: runtime_types::bounded_collections::bounded_vec::BoundedVec<( _0, ::core::primitive::u128, )>, @@ -62041,6 +62049,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62073,6 +62082,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct CandidateHash(pub ::subxt::ext::subxt_core::utils::H256); @@ -62084,6 +62094,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct InboundDownwardMessage<_0> { @@ -62098,6 +62109,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct InboundHrmpMessage<_0> { @@ -62112,6 +62124,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct OutboundHrmpMessage<_0> { @@ -62131,6 +62144,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62148,6 +62162,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62167,6 +62182,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62182,6 +62198,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62199,6 +62216,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62222,6 +62240,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62240,6 +62259,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62258,6 +62278,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62273,6 +62294,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62296,6 +62318,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62311,6 +62334,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62328,6 +62352,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62349,6 +62374,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62364,6 +62390,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62382,6 +62409,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62418,6 +62446,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62440,6 +62469,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62465,6 +62495,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62488,6 +62519,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62506,6 +62538,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62523,6 +62556,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62545,6 +62579,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62568,6 +62603,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62583,6 +62619,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62600,6 +62637,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62617,6 +62655,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62637,6 +62676,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62662,6 +62702,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62670,11 +62711,11 @@ pub mod api { )] pub struct CandidateCommitments<_0> { pub upward_messages: - runtime_types::bounded_collections::bounded_vec::BoundedVec3< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, >, pub horizontal_messages: - runtime_types::bounded_collections::bounded_vec::BoundedVec4< + runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::polkadot_core_primitives::OutboundHrmpMessage< runtime_types::polkadot_parachain_primitives::primitives::Id, >, @@ -62695,6 +62736,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62710,6 +62752,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62746,6 +62789,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62764,6 +62808,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62785,6 +62830,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62800,6 +62846,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62822,6 +62869,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62848,6 +62896,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62868,6 +62917,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62892,6 +62942,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62907,6 +62958,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62926,31 +62978,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct IndexedVec1<_0, _1>( - pub ::subxt::ext::subxt_core::alloc::vec::Vec<_1>, - #[codec(skip)] pub ::core::marker::PhantomData<_0>, - ); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct IndexedVec2<_0, _1>( + pub struct IndexedVec<_0, _1>( pub ::subxt::ext::subxt_core::alloc::vec::Vec<_1>, #[codec(skip)] pub ::core::marker::PhantomData<_0>, ); @@ -62962,6 +62997,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -62993,6 +63029,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63011,6 +63048,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63043,6 +63081,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63065,6 +63104,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63086,6 +63126,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63101,6 +63142,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63121,6 +63163,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63141,6 +63184,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63161,6 +63205,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63189,6 +63234,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63201,7 +63247,7 @@ pub mod api { >, pub random_seed: [::core::primitive::u8; 32usize], pub dispute_period: ::core::primitive::u32, - pub validators: runtime_types::polkadot_primitives::v7::IndexedVec1< + pub validators: runtime_types::polkadot_primitives::v7::IndexedVec< runtime_types::polkadot_primitives::v7::ValidatorIndex, runtime_types::polkadot_primitives::v7::validator_app::Public, >, @@ -63211,7 +63257,7 @@ pub mod api { pub assignment_keys: ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::polkadot_primitives::v7::assignment_app::Public, >, - pub validator_groups: runtime_types::polkadot_primitives::v7::IndexedVec2< + pub validator_groups: runtime_types::polkadot_primitives::v7::IndexedVec< runtime_types::polkadot_primitives::v7::GroupIndex, ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::polkadot_primitives::v7::ValidatorIndex, @@ -63232,6 +63278,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63252,6 +63299,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63270,6 +63318,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63301,6 +63350,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63316,6 +63366,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63339,6 +63390,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63376,6 +63428,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63393,6 +63446,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63437,6 +63491,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63471,6 +63526,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63492,6 +63548,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63517,6 +63574,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63580,6 +63638,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63618,6 +63677,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63692,6 +63752,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63834,6 +63895,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63870,6 +63932,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63896,6 +63959,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63911,6 +63975,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63926,6 +63991,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -63951,6 +64017,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64081,6 +64148,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64168,6 +64236,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64249,6 +64318,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64276,6 +64346,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64303,6 +64374,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64332,6 +64404,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64366,6 +64439,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64397,6 +64471,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64414,6 +64489,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64475,6 +64551,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64512,6 +64589,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64536,6 +64614,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64578,7 +64657,7 @@ pub mod api { sudo_queue_downward_xcm { id: runtime_types::polkadot_parachain_primitives::primitives::Id, xcm: ::subxt::ext::subxt_core::alloc::boxed::Box< - runtime_types::xcm::VersionedXcm1, + runtime_types::xcm::VersionedXcm, >, }, #[codec(index = 5)] @@ -64601,6 +64680,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64652,6 +64732,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64699,6 +64780,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64722,6 +64804,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64765,6 +64848,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64801,6 +64885,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64821,6 +64906,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64837,6 +64923,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64852,6 +64939,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64870,6 +64958,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64892,6 +64981,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64912,6 +65002,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64931,12 +65022,11 @@ pub mod api { #[doc = ""] #[doc = "Errors:"] #[doc = "- `InsufficientBalance`: from the Currency implementation"] - #[doc = "- `InvalidParaId`"] #[doc = "- `QueueFull`"] #[doc = "- `SpotPriceHigherThanMaxAmount`"] #[doc = ""] #[doc = "Events:"] - #[doc = "- `SpotOrderPlaced`"] + #[doc = "- `OnDemandOrderPlaced`"] place_order_allow_death { max_amount: ::core::primitive::u128, para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -64952,12 +65042,11 @@ pub mod api { #[doc = ""] #[doc = "Errors:"] #[doc = "- `InsufficientBalance`: from the Currency implementation"] - #[doc = "- `InvalidParaId`"] #[doc = "- `QueueFull`"] #[doc = "- `SpotPriceHigherThanMaxAmount`"] #[doc = ""] #[doc = "Events:"] - #[doc = "- `SpotOrderPlaced`"] + #[doc = "- `OnDemandOrderPlaced`"] place_order_keep_alive { max_amount: ::core::primitive::u128, para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, @@ -64971,6 +65060,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -64995,6 +65085,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65004,16 +65095,15 @@ pub mod api { #[doc = "The `Event` enum of this pallet"] pub enum Event { #[codec(index = 0)] - #[doc = "An order was placed at some spot price amount."] + #[doc = "An order was placed at some spot price amount by orderer ordered_by"] OnDemandOrderPlaced { para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, spot_price: ::core::primitive::u128, + ordered_by: ::subxt::ext::subxt_core::utils::AccountId32, }, #[codec(index = 1)] - #[doc = "The value of the spot traffic multiplier changed."] - SpotTrafficSet { - traffic: runtime_types::sp_arithmetic::fixed_point::FixedU128, - }, + #[doc = "The value of the spot price has likely changed"] + SpotPriceSet { spot_price: ::core::primitive::u128 }, } } #[derive( @@ -65024,6 +65114,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65042,6 +65133,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65062,6 +65154,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65077,6 +65170,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65093,6 +65187,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65113,6 +65208,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65130,6 +65226,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65151,6 +65248,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65214,6 +65312,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65231,6 +65330,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65251,6 +65351,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65282,6 +65383,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65301,6 +65403,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65345,6 +65448,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65386,6 +65490,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65410,6 +65515,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65448,6 +65554,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65468,6 +65575,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65493,6 +65601,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65510,6 +65619,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65587,6 +65697,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65605,6 +65716,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65629,6 +65741,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65656,6 +65769,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65672,6 +65786,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65746,6 +65861,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65799,6 +65915,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65817,6 +65934,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65849,6 +65967,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65872,6 +65991,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65895,6 +66015,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65923,6 +66044,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65947,6 +66069,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -65964,6 +66087,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66020,6 +66144,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66038,6 +66163,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66059,6 +66185,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66089,6 +66216,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66109,6 +66237,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66138,6 +66267,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66163,6 +66293,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66181,6 +66312,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66206,6 +66338,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66232,6 +66365,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66272,6 +66406,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66298,6 +66433,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66314,6 +66450,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66335,6 +66472,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66352,6 +66490,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66378,6 +66517,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66393,6 +66533,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66421,6 +66562,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66441,6 +66583,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66461,6 +66604,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66479,6 +66623,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66494,6 +66639,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66509,6 +66655,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66535,6 +66682,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66559,6 +66707,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66587,6 +66736,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66664,6 +66814,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66699,6 +66850,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -66732,6 +66884,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum OriginCaller { @@ -66744,6 +66897,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum ProxyType { @@ -66772,6 +66926,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Runtime; @@ -66783,6 +66938,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum RuntimeCall { @@ -66915,6 +67071,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum RuntimeError { @@ -67037,6 +67194,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum RuntimeEvent { @@ -67149,6 +67307,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum RuntimeHoldReason { @@ -67167,6 +67326,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum RuntimeParameters { @@ -67183,6 +67343,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum RuntimeParametersKey { @@ -67199,6 +67360,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum RuntimeParametersValue { @@ -67215,6 +67377,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct SessionKeys { @@ -67238,6 +67401,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67254,6 +67418,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67273,6 +67438,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67289,6 +67455,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67305,6 +67472,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67321,6 +67489,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum ArithmeticError { @@ -67344,6 +67513,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67365,6 +67535,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67383,6 +67554,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67404,6 +67576,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67428,6 +67601,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67447,6 +67621,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67465,6 +67640,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67485,6 +67661,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum AllowedSlots { @@ -67503,6 +67680,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct BabeConfiguration { @@ -67524,6 +67702,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct BabeEpochConfiguration { @@ -67538,6 +67717,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Epoch { @@ -67559,6 +67739,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct OpaqueKeyOwnershipProof( @@ -67577,6 +67758,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67599,6 +67781,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67614,6 +67797,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67632,6 +67816,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67654,6 +67839,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67675,6 +67861,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct DoubleVotingProof<_0, _1, _2> { @@ -67689,19 +67876,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub struct OpaqueKeyOwnershipProof( - pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, - ); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ValidatorSet<_0> { @@ -67716,6 +67891,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct VoteMessage<_0, _1, _2> { @@ -67736,6 +67912,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67751,6 +67928,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67767,12 +67945,13 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum Equivocation<_0, _1> { #[codec(index = 0)] Prevote( - runtime_types::finality_grandpa::Equivocation1< + runtime_types::finality_grandpa::Equivocation< runtime_types::sp_consensus_grandpa::app::Public, runtime_types::finality_grandpa::Prevote<_0, _1>, runtime_types::sp_consensus_grandpa::app::Signature, @@ -67780,7 +67959,7 @@ pub mod api { ), #[codec(index = 1)] Precommit( - runtime_types::finality_grandpa::Equivocation2< + runtime_types::finality_grandpa::Equivocation< runtime_types::sp_consensus_grandpa::app::Public, runtime_types::finality_grandpa::Precommit<_0, _1>, runtime_types::sp_consensus_grandpa::app::Signature, @@ -67795,25 +67974,13 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct EquivocationProof<_0, _1> { pub set_id: ::core::primitive::u64, pub equivocation: runtime_types::sp_consensus_grandpa::Equivocation<_0, _1>, } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub struct OpaqueKeyOwnershipProof( - pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, - ); } pub mod sp_consensus_slots { use super::runtime_types; @@ -67825,6 +67992,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct EquivocationProof<_0, _1> { @@ -67842,6 +68010,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct Slot(pub ::core::primitive::u64); @@ -67858,6 +68027,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67878,6 +68048,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -67898,6 +68069,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct OpaqueMetadata( @@ -67911,6 +68083,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum Void {} @@ -67925,6 +68098,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct CheckInherentsResult { @@ -67940,6 +68114,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct InherentData { @@ -67959,6 +68134,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct EncodableOpaqueLeaf( @@ -67972,6 +68148,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum Error { @@ -68004,6 +68181,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct LeafProof<_0> { @@ -68026,6 +68204,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68047,6 +68226,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68066,6 +68246,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68104,6 +68285,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68635,6 +68817,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68661,6 +68844,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68679,6 +68863,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68717,6 +68902,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68739,6 +68925,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68759,6 +68946,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68781,6 +68969,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -68807,6 +68996,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum DispatchError { @@ -68847,6 +69037,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct DispatchErrorWithPostInfo<_0> { @@ -68861,6 +69052,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum ExtrinsicInclusionMode { @@ -68877,6 +69069,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ModuleError { @@ -68891,6 +69084,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum MultiSignature { @@ -68909,6 +69103,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum MultiSigner { @@ -68927,6 +69122,21 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct OpaqueValue( + pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, + ); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum TokenError { @@ -68959,6 +69169,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum TransactionalError { @@ -68978,6 +69189,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct MembershipProof { @@ -69000,6 +69212,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69022,6 +69235,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct RuntimeVersion { @@ -69050,6 +69264,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69071,6 +69286,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct RuntimeDbWeight { @@ -69092,6 +69308,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69116,6 +69333,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69134,6 +69352,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69154,6 +69373,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69169,6 +69389,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69197,6 +69418,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69216,6 +69438,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69236,6 +69459,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69268,6 +69492,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69291,6 +69516,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69349,6 +69575,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69396,6 +69623,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69433,6 +69661,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69454,6 +69683,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69484,13 +69714,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum Instruction1 { + pub enum Instruction { #[codec(index = 0)] WithdrawAsset(runtime_types::staging_xcm::v4::asset::Assets), #[codec(index = 1)] @@ -69516,11 +69747,11 @@ pub mod api { TransferReserveAsset { assets: runtime_types::staging_xcm::v4::asset::Assets, dest: runtime_types::staging_xcm::v4::location::Location, - xcm: runtime_types::staging_xcm::v4::Xcm1, + xcm: runtime_types::staging_xcm::v4::Xcm, }, #[codec(index = 6)] Transact { - origin_kind: runtime_types::xcm::v2::OriginKind, + origin_kind: runtime_types::xcm::v3::OriginKind, require_weight_at_most: runtime_types::sp_weights::weight_v2::Weight, call: runtime_types::xcm::double_encoded::DoubleEncoded, }, @@ -69562,7 +69793,7 @@ pub mod api { DepositReserveAsset { assets: runtime_types::staging_xcm::v4::asset::AssetFilter, dest: runtime_types::staging_xcm::v4::location::Location, - xcm: runtime_types::staging_xcm::v4::Xcm1, + xcm: runtime_types::staging_xcm::v4::Xcm, }, #[codec(index = 15)] ExchangeAsset { @@ -69574,13 +69805,13 @@ pub mod api { InitiateReserveWithdraw { assets: runtime_types::staging_xcm::v4::asset::AssetFilter, reserve: runtime_types::staging_xcm::v4::location::Location, - xcm: runtime_types::staging_xcm::v4::Xcm1, + 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::Xcm1, + xcm: runtime_types::staging_xcm::v4::Xcm, }, #[codec(index = 18)] ReportHolding { @@ -69595,9 +69826,9 @@ pub mod api { #[codec(index = 20)] RefundSurplus, #[codec(index = 21)] - SetErrorHandler(runtime_types::staging_xcm::v4::Xcm1), + SetErrorHandler(runtime_types::staging_xcm::v4::Xcm), #[codec(index = 22)] - SetAppendix(runtime_types::staging_xcm::v4::Xcm1), + SetAppendix(runtime_types::staging_xcm::v4::Xcm), #[codec(index = 23)] ClearError, #[codec(index = 24)] @@ -69660,231 +69891,7 @@ pub mod api { ExportMessage { network: runtime_types::staging_xcm::v4::junction::NetworkId, destination: runtime_types::staging_xcm::v4::junctions::Junctions, - xcm: runtime_types::staging_xcm::v4::Xcm1, - }, - #[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 :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: 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::Xcm1, - }, - #[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::Xcm1, - }, - #[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::Xcm1, - }, - #[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::Xcm1, - }, - #[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: - ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, - response_info: runtime_types::staging_xcm::v4::QueryResponseInfo, - }, - #[codec(index = 34)] - ExpectPallet { - #[codec(compact)] - index: ::core::primitive::u32, - name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, - module_name: - ::subxt::ext::subxt_core::alloc::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::Xcm1, + xcm: runtime_types::staging_xcm::v4::Xcm, }, #[codec(index = 39)] LockAsset { @@ -69932,6 +69939,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69941,10 +69949,10 @@ pub mod api { pub struct PalletInfo { #[codec(compact)] pub index: ::core::primitive::u32, - pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, - pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, #[codec(compact)] @@ -69962,6 +69970,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -69982,6 +69991,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70004,7 +70014,7 @@ pub mod api { Version(::core::primitive::u32), #[codec(index = 4)] PalletsInfo( - runtime_types::bounded_collections::bounded_vec::BoundedVec6< + runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::staging_xcm::v4::PalletInfo, >, ), @@ -70019,34 +70029,16 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Xcm1( + pub struct Xcm( pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::staging_xcm::v4::Instruction1, - >, - ); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Xcm2( - pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::staging_xcm::v4::Instruction2, + runtime_types::staging_xcm::v4::Instruction, >, ); } @@ -70065,6 +70057,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70096,6 +70089,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70118,6 +70112,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70149,7 +70144,7 @@ pub mod api { GeneralIndex(#[codec(compact)] ::core::primitive::u128), #[codec(index = 6)] GeneralKey( - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec1< + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< ::core::primitive::u8, >, ), @@ -70172,6 +70167,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70192,6 +70188,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70222,6 +70219,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70242,6 +70240,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70260,6 +70259,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70280,6 +70280,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70299,6 +70300,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70319,6 +70321,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70345,6 +70348,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70421,6 +70425,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70442,6 +70447,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70511,6 +70517,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70522,7 +70529,7 @@ pub mod api { Unit, #[codec(index = 1)] Named( - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec1< + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< ::core::primitive::u8, >, ), @@ -70551,6 +70558,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70595,13 +70603,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum Instruction1 { + pub enum Instruction { #[codec(index = 0)] WithdrawAsset(runtime_types::xcm::v2::multiasset::MultiAssets), #[codec(index = 1)] @@ -70625,7 +70634,7 @@ pub mod api { TransferReserveAsset { assets: runtime_types::xcm::v2::multiasset::MultiAssets, dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm1, + xcm: runtime_types::xcm::v2::Xcm, }, #[codec(index = 6)] Transact { @@ -70682,7 +70691,7 @@ pub mod api { #[codec(compact)] max_assets: ::core::primitive::u32, dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm1, + xcm: runtime_types::xcm::v2::Xcm, }, #[codec(index = 15)] ExchangeAsset { @@ -70693,13 +70702,13 @@ pub mod api { InitiateReserveWithdraw { assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, reserve: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm1, + xcm: runtime_types::xcm::v2::Xcm, }, #[codec(index = 17)] InitiateTeleport { assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm1, + xcm: runtime_types::xcm::v2::Xcm, }, #[codec(index = 18)] QueryHolding { @@ -70718,162 +70727,9 @@ pub mod api { #[codec(index = 20)] RefundSurplus, #[codec(index = 21)] - SetErrorHandler(runtime_types::xcm::v2::Xcm1), + SetErrorHandler(runtime_types::xcm::v2::Xcm), #[codec(index = 22)] - SetAppendix(runtime_types::xcm::v2::Xcm1), - #[codec(index = 23)] - ClearError, - #[codec(index = 24)] - ClaimAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssets, - ticket: runtime_types::xcm::v2::multilocation::MultiLocation, - }, - #[codec(index = 25)] - Trap(#[codec(compact)] ::core::primitive::u64), - #[codec(index = 26)] - SubscribeVersion { - #[codec(compact)] - query_id: ::core::primitive::u64, - #[codec(compact)] - max_response_weight: ::core::primitive::u64, - }, - #[codec(index = 27)] - UnsubscribeVersion, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Instruction2 { - #[codec(index = 0)] - WithdrawAsset(runtime_types::xcm::v2::multiasset::MultiAssets), - #[codec(index = 1)] - ReserveAssetDeposited(runtime_types::xcm::v2::multiasset::MultiAssets), - #[codec(index = 2)] - ReceiveTeleportedAsset(runtime_types::xcm::v2::multiasset::MultiAssets), - #[codec(index = 3)] - QueryResponse { - #[codec(compact)] - query_id: ::core::primitive::u64, - response: runtime_types::xcm::v2::Response, - #[codec(compact)] - max_weight: ::core::primitive::u64, - }, - #[codec(index = 4)] - TransferAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssets, - beneficiary: runtime_types::xcm::v2::multilocation::MultiLocation, - }, - #[codec(index = 5)] - TransferReserveAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssets, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm1, - }, - #[codec(index = 6)] - Transact { - origin_type: runtime_types::xcm::v2::OriginKind, - #[codec(compact)] - require_weight_at_most: ::core::primitive::u64, - 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::xcm::v2::multilocation::Junctions), - #[codec(index = 12)] - ReportError { - #[codec(compact)] - query_id: ::core::primitive::u64, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - #[codec(compact)] - max_response_weight: ::core::primitive::u64, - }, - #[codec(index = 13)] - DepositAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - #[codec(compact)] - max_assets: ::core::primitive::u32, - beneficiary: runtime_types::xcm::v2::multilocation::MultiLocation, - }, - #[codec(index = 14)] - DepositReserveAsset { - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - #[codec(compact)] - max_assets: ::core::primitive::u32, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm1, - }, - #[codec(index = 15)] - ExchangeAsset { - give: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - receive: runtime_types::xcm::v2::multiasset::MultiAssets, - }, - #[codec(index = 16)] - InitiateReserveWithdraw { - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - reserve: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm1, - }, - #[codec(index = 17)] - InitiateTeleport { - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - xcm: runtime_types::xcm::v2::Xcm1, - }, - #[codec(index = 18)] - QueryHolding { - #[codec(compact)] - query_id: ::core::primitive::u64, - dest: runtime_types::xcm::v2::multilocation::MultiLocation, - assets: runtime_types::xcm::v2::multiasset::MultiAssetFilter, - #[codec(compact)] - max_response_weight: ::core::primitive::u64, - }, - #[codec(index = 19)] - BuyExecution { - fees: runtime_types::xcm::v2::multiasset::MultiAsset, - weight_limit: runtime_types::xcm::v2::WeightLimit, - }, - #[codec(index = 20)] - RefundSurplus, - #[codec(index = 21)] - SetErrorHandler(runtime_types::xcm::v2::Xcm2), - #[codec(index = 22)] - SetAppendix(runtime_types::xcm::v2::Xcm2), + SetAppendix(runtime_types::xcm::v2::Xcm), #[codec(index = 23)] ClearError, #[codec(index = 24)] @@ -70901,6 +70757,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70912,7 +70769,7 @@ pub mod api { Any, #[codec(index = 1)] Named( - runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec1< + runtime_types::bounded_collections::weak_bounded_vec::WeakBoundedVec< ::core::primitive::u8, >, ), @@ -70929,6 +70786,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70953,6 +70811,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -70982,6 +70841,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71002,34 +70862,16 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Xcm1( + pub struct Xcm( pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::xcm::v2::Instruction1, - >, - ); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Xcm2( - pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::xcm::v2::Instruction2, + runtime_types::xcm::v2::Instruction, >, ); } @@ -71045,6 +70887,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71081,6 +70924,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71125,6 +70969,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71180,6 +71025,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71227,6 +71073,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71306,6 +71153,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71326,6 +71174,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71354,6 +71203,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71374,6 +71224,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71392,6 +71243,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71412,6 +71264,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71431,6 +71284,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71451,6 +71305,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71486,6 +71341,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -71583,13 +71439,14 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub enum Instruction1 { + pub enum Instruction { #[codec(index = 0)] WithdrawAsset(runtime_types::xcm::v3::multiasset::MultiAssets), #[codec(index = 1)] @@ -71615,11 +71472,11 @@ pub mod api { TransferReserveAsset { assets: runtime_types::xcm::v3::multiasset::MultiAssets, dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - xcm: runtime_types::xcm::v3::Xcm1, + xcm: runtime_types::xcm::v3::Xcm, }, #[codec(index = 6)] Transact { - origin_kind: runtime_types::xcm::v2::OriginKind, + origin_kind: runtime_types::xcm::v3::OriginKind, require_weight_at_most: runtime_types::sp_weights::weight_v2::Weight, call: runtime_types::xcm::double_encoded::DoubleEncoded, }, @@ -71661,7 +71518,7 @@ pub mod api { DepositReserveAsset { assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter, dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - xcm: runtime_types::xcm::v3::Xcm1, + xcm: runtime_types::xcm::v3::Xcm, }, #[codec(index = 15)] ExchangeAsset { @@ -71673,13 +71530,13 @@ pub mod api { InitiateReserveWithdraw { assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter, reserve: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - xcm: runtime_types::xcm::v3::Xcm1, + xcm: runtime_types::xcm::v3::Xcm, }, #[codec(index = 17)] InitiateTeleport { assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter, dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - xcm: runtime_types::xcm::v3::Xcm1, + xcm: runtime_types::xcm::v3::Xcm, }, #[codec(index = 18)] ReportHolding { @@ -71694,9 +71551,9 @@ pub mod api { #[codec(index = 20)] RefundSurplus, #[codec(index = 21)] - SetErrorHandler(runtime_types::xcm::v3::Xcm1), + SetErrorHandler(runtime_types::xcm::v3::Xcm), #[codec(index = 22)] - SetAppendix(runtime_types::xcm::v3::Xcm1), + SetAppendix(runtime_types::xcm::v3::Xcm), #[codec(index = 23)] ClearError, #[codec(index = 24)] @@ -71761,233 +71618,7 @@ pub mod api { ExportMessage { network: runtime_types::xcm::v3::junction::NetworkId, destination: runtime_types::xcm::v3::junctions::Junctions, - xcm: runtime_types::xcm::v3::Xcm1, - }, - #[codec(index = 39)] - LockAsset { - asset: runtime_types::xcm::v3::multiasset::MultiAsset, - unlocker: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - }, - #[codec(index = 40)] - UnlockAsset { - asset: runtime_types::xcm::v3::multiasset::MultiAsset, - target: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - }, - #[codec(index = 41)] - NoteUnlockable { - asset: runtime_types::xcm::v3::multiasset::MultiAsset, - owner: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - }, - #[codec(index = 42)] - RequestUnlock { - asset: runtime_types::xcm::v3::multiasset::MultiAsset, - locker: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - }, - #[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::v3::multilocation::MultiLocation), - #[codec(index = 47)] - UnpaidExecution { - weight_limit: runtime_types::xcm::v3::WeightLimit, - check_origin: ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >, - }, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub enum Instruction2 { - #[codec(index = 0)] - WithdrawAsset(runtime_types::xcm::v3::multiasset::MultiAssets), - #[codec(index = 1)] - ReserveAssetDeposited(runtime_types::xcm::v3::multiasset::MultiAssets), - #[codec(index = 2)] - ReceiveTeleportedAsset(runtime_types::xcm::v3::multiasset::MultiAssets), - #[codec(index = 3)] - QueryResponse { - #[codec(compact)] - query_id: ::core::primitive::u64, - response: runtime_types::xcm::v3::Response, - max_weight: runtime_types::sp_weights::weight_v2::Weight, - querier: ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >, - }, - #[codec(index = 4)] - TransferAsset { - assets: runtime_types::xcm::v3::multiasset::MultiAssets, - beneficiary: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - }, - #[codec(index = 5)] - TransferReserveAsset { - assets: runtime_types::xcm::v3::multiasset::MultiAssets, - dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - xcm: runtime_types::xcm::v3::Xcm1, - }, - #[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::xcm::v3::junctions::Junctions), - #[codec(index = 12)] - ReportError(runtime_types::xcm::v3::QueryResponseInfo), - #[codec(index = 13)] - DepositAsset { - assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter, - beneficiary: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - }, - #[codec(index = 14)] - DepositReserveAsset { - assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter, - dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - xcm: runtime_types::xcm::v3::Xcm1, - }, - #[codec(index = 15)] - ExchangeAsset { - give: runtime_types::xcm::v3::multiasset::MultiAssetFilter, - want: runtime_types::xcm::v3::multiasset::MultiAssets, - maximal: ::core::primitive::bool, - }, - #[codec(index = 16)] - InitiateReserveWithdraw { - assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter, - reserve: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - xcm: runtime_types::xcm::v3::Xcm1, - }, - #[codec(index = 17)] - InitiateTeleport { - assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter, - dest: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - xcm: runtime_types::xcm::v3::Xcm1, - }, - #[codec(index = 18)] - ReportHolding { - response_info: runtime_types::xcm::v3::QueryResponseInfo, - assets: runtime_types::xcm::v3::multiasset::MultiAssetFilter, - }, - #[codec(index = 19)] - BuyExecution { - fees: runtime_types::xcm::v3::multiasset::MultiAsset, - weight_limit: runtime_types::xcm::v3::WeightLimit, - }, - #[codec(index = 20)] - RefundSurplus, - #[codec(index = 21)] - SetErrorHandler(runtime_types::xcm::v3::Xcm2), - #[codec(index = 22)] - SetAppendix(runtime_types::xcm::v3::Xcm2), - #[codec(index = 23)] - ClearError, - #[codec(index = 24)] - ClaimAsset { - assets: runtime_types::xcm::v3::multiasset::MultiAssets, - ticket: runtime_types::staging_xcm::v3::multilocation::MultiLocation, - }, - #[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::xcm::v3::multiasset::MultiAssets), - #[codec(index = 29)] - ExpectAsset(runtime_types::xcm::v3::multiasset::MultiAssets), - #[codec(index = 30)] - ExpectOrigin( - ::core::option::Option< - runtime_types::staging_xcm::v3::multilocation::MultiLocation, - >, - ), - #[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: - ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, - response_info: runtime_types::xcm::v3::QueryResponseInfo, - }, - #[codec(index = 34)] - ExpectPallet { - #[codec(compact)] - index: ::core::primitive::u32, - name: ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, - module_name: - ::subxt::ext::subxt_core::alloc::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::xcm::v3::QueryResponseInfo), - #[codec(index = 36)] - ClearTransactStatus, - #[codec(index = 37)] - UniversalOrigin(runtime_types::xcm::v3::junction::Junction), - #[codec(index = 38)] - ExportMessage { - network: runtime_types::xcm::v3::junction::NetworkId, - destination: runtime_types::xcm::v3::junctions::Junctions, - xcm: runtime_types::xcm::v3::Xcm1, + xcm: runtime_types::xcm::v3::Xcm, }, #[codec(index = 39)] LockAsset { @@ -72035,6 +71666,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -72046,13 +71678,13 @@ pub mod api { Success, #[codec(index = 1)] Error( - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, ), #[codec(index = 2)] TruncatedError( - runtime_types::bounded_collections::bounded_vec::BoundedVec2< + runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, ), @@ -72065,6 +71697,32 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum OriginKind { + #[codec(index = 0)] + Native, + #[codec(index = 1)] + SovereignAccount, + #[codec(index = 2)] + Superuser, + #[codec(index = 3)] + Xcm, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -72074,10 +71732,10 @@ pub mod api { pub struct PalletInfo { #[codec(compact)] pub index: ::core::primitive::u32, - pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub name: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, - pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec2< + pub module_name: runtime_types::bounded_collections::bounded_vec::BoundedVec< ::core::primitive::u8, >, #[codec(compact)] @@ -72095,6 +71753,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -72115,6 +71774,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -72137,7 +71797,7 @@ pub mod api { Version(::core::primitive::u32), #[codec(index = 4)] PalletsInfo( - runtime_types::bounded_collections::bounded_vec::BoundedVec5< + runtime_types::bounded_collections::bounded_vec::BoundedVec< runtime_types::xcm::v3::PalletInfo, >, ), @@ -72152,6 +71812,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -72172,34 +71833,16 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct Xcm1( + pub struct Xcm( pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::xcm::v3::Instruction1, - >, - ); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct Xcm2( - pub ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::xcm::v3::Instruction2, + runtime_types::xcm::v3::Instruction, >, ); } @@ -72211,6 +71854,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VersionedAssetId { @@ -72227,6 +71871,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VersionedAssets { @@ -72245,6 +71890,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VersionedLocation { @@ -72263,6 +71909,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub enum VersionedResponse { @@ -72281,33 +71928,16 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub enum VersionedXcm1 { + pub enum VersionedXcm { #[codec(index = 2)] - V2(runtime_types::xcm::v2::Xcm1), + V2(runtime_types::xcm::v2::Xcm), #[codec(index = 3)] - V3(runtime_types::xcm::v3::Xcm1), + V3(runtime_types::xcm::v3::Xcm), #[codec(index = 4)] - V4(runtime_types::staging_xcm::v4::Xcm1), - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] - #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] - pub enum VersionedXcm2 { - #[codec(index = 2)] - 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), + V4(runtime_types::staging_xcm::v4::Xcm), } } pub mod xcm_fee_payment_runtime_api { @@ -72322,6 +71952,36 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct CallDryRunEffects<_0> { + pub execution_result: ::core::result::Result< + runtime_types::frame_support::dispatch::PostDispatchInfo, + runtime_types::sp_runtime::DispatchErrorWithPostInfo< + runtime_types::frame_support::dispatch::PostDispatchInfo, + >, + >, + pub emitted_events: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, + pub local_xcm: ::core::option::Option, + pub forwarded_xcms: ::subxt::ext::subxt_core::alloc::vec::Vec<( + runtime_types::xcm::VersionedLocation, + ::subxt::ext::subxt_core::alloc::vec::Vec, + )>, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -72333,34 +71993,6 @@ pub mod api { Unimplemented, #[codec(index = 1)] VersionedConversionFailed, - #[codec(index = 2)] - InvalidExtrinsic, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct ExtrinsicDryRunEffects<_0> { - pub execution_result: - ::core::result::Result<(), runtime_types::sp_runtime::DispatchError>, - pub emitted_events: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, - pub local_xcm: ::core::option::Option, - pub forwarded_xcms: ::subxt::ext::subxt_core::alloc::vec::Vec<( - runtime_types::xcm::VersionedLocation, - ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::xcm::VersionedXcm1, - >, - )>, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -72370,6 +72002,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] @@ -72381,9 +72014,7 @@ pub mod api { pub emitted_events: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, pub forwarded_xcms: ::subxt::ext::subxt_core::alloc::vec::Vec<( runtime_types::xcm::VersionedLocation, - ::subxt::ext::subxt_core::alloc::vec::Vec< - runtime_types::xcm::VersionedXcm1, - >, + ::subxt::ext::subxt_core::alloc::vec::Vec, )>, } } @@ -72397,6 +72028,7 @@ pub mod api { Debug, )] # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] #[decode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" )] From 4fcabe211da43542e90987a0b6ef052f75ddf5e4 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Tue, 25 Jun 2024 18:05:45 +0200 Subject: [PATCH 056/137] chore(deps): bump jsonrpsee from 0.22.5 to 0.23.1 (#1656) * chore(deps): bump jsonrpsee from 0.22.5 to 0.23.1 * bump reconnecting-rpc-client dep --- Cargo.lock | 329 ++++++++++++++++++++------------ Cargo.toml | 2 +- cli/Cargo.toml | 2 +- codegen/Cargo.toml | 2 +- subxt/Cargo.toml | 4 +- testing/test-runtime/Cargo.toml | 2 +- 6 files changed, 212 insertions(+), 129 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 1f2a7dfc85..9ca98fc5d5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -777,6 +777,12 @@ version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfg-if" version = "1.0.0" @@ -952,6 +958,16 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + [[package]] name = "common-path" version = "1.0.0" @@ -1892,7 +1908,7 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils", - "http", + "http 0.2.12", "js-sys", "pin-project", "serde", @@ -1941,16 +1957,16 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.26" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http", + "http 1.1.0", "indexmap 2.2.6", "slab", "tokio", @@ -2108,13 +2124,36 @@ dependencies = [ ] [[package]] -name = "http-body" -version = "0.4.6" +name = "http" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", - "http", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body", "pin-project-lite", ] @@ -2124,50 +2163,62 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" - [[package]] name = "hyper" -version = "0.14.28" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", - "http", + "http 1.1.0", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-rustls" -version = "0.24.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", - "http", + "http 1.1.0", "hyper", + "hyper-util", "log", - "rustls 0.21.12", - "rustls-native-certs 0.6.3", + "rustls", + "rustls-pki-types", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -2370,6 +2421,26 @@ version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" + [[package]] name = "js-sys" version = "0.3.69" @@ -2381,9 +2452,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfdb12a2381ea5b2e68c3469ec604a007b367778cdb14d09612c8069ebd616ad" +checksum = "95a130d27083a4001b7b2d72a19f08786299550f76c9bd5307498dce2c2b20fa" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2395,22 +2466,24 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4978087a58c3ab02efc5b07c5e5e2803024536106fd5506f558db172c889b3aa" +checksum = "039db9fe25cd63b7221c3f8788c1ef4ea07987d40ec25a1e7d7a3c3e3e3fd130" dependencies = [ + "base64 0.22.0", "futures-channel", "futures-util", "gloo-net", - "http", + "http 1.1.0", "jsonrpsee-core", "pin-project", - "rustls-native-certs 0.7.0", + "rustls", "rustls-pki-types", - "soketto", + "rustls-platform-verifier", + "soketto 0.8.0", "thiserror", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls", "tokio-util", "tracing", "url", @@ -2418,16 +2491,19 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4b257e1ec385e07b0255dde0b933f948b5c8b8c28d42afda9587c3a967b896d" +checksum = "21545a9445fbd582840ff5160a9a3e12b8e6da582151cdb07bde9a1970ba3a24" dependencies = [ "anyhow", "async-trait", "beef", + "bytes", "futures-timer", "futures-util", - "hyper", + "http 1.1.0", + "http-body", + "http-body-util", "jsonrpsee-types", "pin-project", "rustc-hash", @@ -2442,15 +2518,20 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ccf93fc4a0bfe05d851d37d7c32b7f370fe94336b52a2f0efc5f1981895c2e5" +checksum = "fb25cab482c8512c4f3323a5c90b95a3b8f7c90681a87bf7a68b942d52f08933" dependencies = [ "async-trait", + "base64 0.22.0", + "http-body", "hyper", "hyper-rustls", + "hyper-util", "jsonrpsee-core", "jsonrpsee-types", + "rustls", + "rustls-platform-verifier", "serde", "serde_json", "thiserror", @@ -2462,12 +2543,12 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "150d6168405890a7a3231a3c74843f58b8959471f6df76078db2619ddee1d07d" +checksum = "f511b714bca46f9a3e97c0e0eb21d2c112e83e444d2db535b5ec7093f5836d73" dependencies = [ - "anyhow", "beef", + "http 1.1.0", "serde", "serde_json", "thiserror", @@ -2475,9 +2556,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f448d8eacd945cc17b6c0b42c361531ca36a962ee186342a97cdb8fca679cd77" +checksum = "8c8a6dfa0c35c8549fa8e003ce0bbcf37b051ab7ef85fce587e8f0ed7881c84d" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2486,11 +2567,11 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.22.5" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58b9db2dfd5bb1194b0ce921504df9ceae210a345bc2f6c5a61432089bbab070" +checksum = "786c100eb67df2f2d863d231c2c6978bcf80ff4bf606ffc40e7e68ef562da7bf" dependencies = [ - "http", + "http 1.1.0", "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-types", @@ -3397,9 +3478,9 @@ dependencies = [ [[package]] name = "reconnecting-jsonrpsee-ws-client" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89cc4a6f1e641017e300c050f0c4c46a198627fb39ec03e7a028d20256b5e54" +checksum = "06fa4f17e09edfc3131636082faaec633c7baa269396b4004040bc6c52f49f65" dependencies = [ "cfg_aliases", "finito", @@ -3575,42 +3656,19 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.12" +version = "0.23.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432" +checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402" dependencies = [ "log", + "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.3", + "rustls-webpki", "subtle", "zeroize", ] -[[package]] -name = "rustls-native-certs" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" -dependencies = [ - "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - [[package]] name = "rustls-native-certs" version = "0.7.0" @@ -3618,21 +3676,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.2", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", ] -[[package]] -name = "rustls-pemfile" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" -dependencies = [ - "base64 0.21.7", -] - [[package]] name = "rustls-pemfile" version = "2.1.2" @@ -3645,25 +3694,42 @@ dependencies = [ [[package]] name = "rustls-pki-types" -version = "1.5.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54" +checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d" [[package]] -name = "rustls-webpki" -version = "0.101.7" +name = "rustls-platform-verifier" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "b5f0d26fa1ce3c790f9590868f0109289a044acb954525f933e2aa3b871c157d" dependencies = [ - "ring", - "untrusted", + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-roots", + "winapi", ] [[package]] -name = "rustls-webpki" -version = "0.102.3" +name = "rustls-platform-verifier-android" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf" +checksum = "84e217e7fdc8466b5b35d30f8c0a30febd29173df4a3a0c2115d306b9c4117ad" + +[[package]] +name = "rustls-webpki" +version = "0.102.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e" dependencies = [ "ring", "rustls-pki-types", @@ -3914,16 +3980,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "sec1" version = "0.7.3" @@ -3976,6 +4032,7 @@ dependencies = [ "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] @@ -4079,6 +4136,17 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.9.9" @@ -4233,7 +4301,7 @@ dependencies = [ "siphasher", "slab", "smallvec", - "soketto", + "soketto 0.7.1", "twox-hash", "wasmi", "x25519-dalek", @@ -4301,6 +4369,21 @@ dependencies = [ "sha-1", ] +[[package]] +name = "soketto" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" +dependencies = [ + "base64 0.22.0", + "bytes", + "futures", + "httparse", + "log", + "rand", + "sha1", +] + [[package]] name = "sp-application-crypto" version = "33.0.0" @@ -5136,21 +5219,11 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.24.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.21.12", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.4", + "rustls", "rustls-pki-types", "tokio", ] @@ -5257,6 +5330,7 @@ dependencies = [ "futures-util", "pin-project", "pin-project-lite", + "tokio", "tower-layer", "tower-service", "tracing", @@ -5908,6 +5982,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "webpki-roots" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "which" version = "5.0.0" diff --git a/Cargo.toml b/Cargo.toml index ea7032edcf..48ead3f0e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -84,7 +84,7 @@ hex = { version = "0.4.3", default-features = false } heck = "0.5.0" impl-serde = { version = "0.4.0", default-features = false } indoc = "2" -jsonrpsee = { version = "0.22" } +jsonrpsee = { version = "0.23.1" } pretty_assertions = "1.4.0" primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 5f0dca45d5..d6392da894 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -40,7 +40,7 @@ scale-info = { workspace = true } scale-value = { workspace = true } syn = { workspace = true } quote = { workspace = true } -jsonrpsee = { workspace = true, features = ["async-client", "client-ws-transport-native-tls", "http-client"] } +jsonrpsee = { workspace = true, features = ["async-client", "client-ws-transport-tls", "http-client"] } tokio = { workspace = true, features = ["rt-multi-thread"] } scale-typegen-description = { workspace = true } heck = { workspace = true } diff --git a/codegen/Cargo.toml b/codegen/Cargo.toml index cc122419e6..ba94a826fc 100644 --- a/codegen/Cargo.toml +++ b/codegen/Cargo.toml @@ -25,7 +25,7 @@ quote = { workspace = true } syn = { workspace = true } scale-info = { workspace = true } subxt-metadata = { workspace = true } -jsonrpsee = { workspace = true, features = ["async-client", "client-ws-transport-native-tls", "http-client"], optional = true } +jsonrpsee = { workspace = true, features = ["async-client", "client-ws-transport-tls", "http-client"], optional = true } hex = { workspace = true, features = ["std"] } tokio = { workspace = true, features = ["rt-multi-thread"], optional = true } thiserror = { workspace = true } diff --git a/subxt/Cargo.toml b/subxt/Cargo.toml index 5229fce56b..24f84b23f6 100644 --- a/subxt/Cargo.toml +++ b/subxt/Cargo.toml @@ -26,7 +26,7 @@ default = ["jsonrpsee", "native"] # Exactly 1 of "web" and "native" is expected. native = [ "jsonrpsee?/async-client", - "jsonrpsee?/client-ws-transport-native-tls", + "jsonrpsee?/client-ws-transport-tls", "subxt-lightclient?/native", "tokio-util", "reconnecting-jsonrpsee-ws-client?/native", @@ -101,7 +101,7 @@ subxt-metadata = { workspace = true, features = ["std"] } subxt-lightclient = { workspace = true, optional = true, default-features = false } # Reconnecting jsonrpc ws client -reconnecting-jsonrpsee-ws-client = { version = "0.4", optional = true, default-features = false } +reconnecting-jsonrpsee-ws-client = { version = "0.4.3", optional = true, default-features = false } # For parsing urls to disallow insecure schemes url = { workspace = true } diff --git a/testing/test-runtime/Cargo.toml b/testing/test-runtime/Cargo.toml index 2a3975f099..b7b69f22fb 100644 --- a/testing/test-runtime/Cargo.toml +++ b/testing/test-runtime/Cargo.toml @@ -14,7 +14,7 @@ serde = { workspace = true } tokio = { workspace = true, features = ["rt-multi-thread"] } tokio-util = { workspace = true, features = ["compat"] } which = { workspace = true } -jsonrpsee = { workspace = true, features = ["async-client", "client-ws-transport-native-tls"] } +jsonrpsee = { workspace = true, features = ["async-client", "client-ws-transport-tls"] } hex = { workspace = true } codec = { workspace = true } From 75bb9b8354a5df268c066cc56192b7c05352e51b Mon Sep 17 00:00:00 2001 From: James Wilson Date: Wed, 26 Jun 2024 13:23:26 +0100 Subject: [PATCH 057/137] Allow PartialExtrinsic to be held across await points (#1658) * Allow PartialTransaction to be held across await points, and example to prove it * Add comment to tx_parital example * Fix book link --- core/src/config/extrinsic_params.rs | 2 +- core/src/config/mod.rs | 2 +- core/src/config/signed_extensions.rs | 4 +-- subxt/examples/tx_partial.rs | 53 ++++++++++++++++++++++++++++ subxt/src/book/usage/transactions.rs | 9 +++++ 5 files changed, 66 insertions(+), 4 deletions(-) create mode 100644 subxt/examples/tx_partial.rs diff --git a/core/src/config/extrinsic_params.rs b/core/src/config/extrinsic_params.rs index 1f13e45fe9..1353ec3a25 100644 --- a/core/src/config/extrinsic_params.rs +++ b/core/src/config/extrinsic_params.rs @@ -14,7 +14,7 @@ use alloc::vec::Vec; /// This trait allows you to configure the "signed extra" and /// "additional" parameters that are a part of the transaction payload /// or the signer payload respectively. -pub trait ExtrinsicParams: ExtrinsicParamsEncoder + Sized + 'static { +pub trait ExtrinsicParams: ExtrinsicParamsEncoder + Sized + Send + 'static { /// These parameters can be provided to the constructor along with /// some default parameters that `subxt` understands, in order to /// help construct your [`ExtrinsicParams`] object. diff --git a/core/src/config/mod.rs b/core/src/config/mod.rs index dc0cb7783f..2c7b484ff3 100644 --- a/core/src/config/mod.rs +++ b/core/src/config/mod.rs @@ -58,7 +58,7 @@ pub trait Config: Sized + Send + Sync + 'static { type ExtrinsicParams: ExtrinsicParams; /// This is used to identify an asset in the `ChargeAssetTxPayment` signed extension. - type AssetId: Debug + Clone + Encode + DecodeAsType + EncodeAsType; + type AssetId: Debug + Clone + Encode + DecodeAsType + EncodeAsType + Send; } /// given some [`Config`], this return the other params needed for its `ExtrinsicParams`. diff --git a/core/src/config/signed_extensions.rs b/core/src/config/signed_extensions.rs index 893872b6f2..161a255de5 100644 --- a/core/src/config/signed_extensions.rs +++ b/core/src/config/signed_extensions.rs @@ -435,7 +435,7 @@ impl SignedExtension for ChargeTransactionPayment { /// ones are actually required for the chain in the correct order, ignoring the rest. This /// is a sensible default, and allows for a single configuration to work across multiple chains. pub struct AnyOf { - params: Vec>, + params: Vec>, _marker: core::marker::PhantomData<(T, Params)>, } @@ -470,7 +470,7 @@ macro_rules! impl_tuples { // Break and record as soon as we find a match: if $ident::matches(e.identifier(), e.extra_ty(), types) { let ext = $ident::new(client, params.$index)?; - let boxed_ext: Box = Box::new(ext); + let boxed_ext: Box = Box::new(ext); exts_by_index.insert(idx, boxed_ext); break } diff --git a/subxt/examples/tx_partial.rs b/subxt/examples/tx_partial.rs new file mode 100644 index 0000000000..c463a4e64f --- /dev/null +++ b/subxt/examples/tx_partial.rs @@ -0,0 +1,53 @@ +#![allow(missing_docs)] +use subxt::{OnlineClient, PolkadotConfig}; +use subxt_signer::sr25519::dev; + +type BoxedError = Box; + +#[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata_small.scale")] +pub mod polkadot {} + +#[tokio::main] +async fn main() -> Result<(), BoxedError> { + // Spawned tasks require things held across await points to impl Send, + // so we use one to demonstrate that this is possible with `PartialExtrinsic` + tokio::spawn(signing_example()).await??; + Ok(()) +} + +async fn signing_example() -> Result<(), BoxedError> { + let api = OnlineClient::::new().await?; + + // Build a balance transfer extrinsic. + let dest = dev::bob().public_key().into(); + let balance_transfer_tx = polkadot::tx().balances().transfer_allow_death(dest, 10_000); + + let alice = dev::alice(); + + // Create partial tx, ready to be signed. + let partial_tx = api + .tx() + .create_partial_signed( + &balance_transfer_tx, + &alice.public_key().to_account_id(), + Default::default(), + ) + .await?; + + // Simulate taking some time to get a signature back, in part to + // show that the `PartialExtrinsic` can be held across await points. + tokio::time::sleep(tokio::time::Duration::from_millis(100)).await; + let signature = alice.sign(&partial_tx.signer_payload()); + + // Sign the transaction. + let tx = partial_tx + .sign_with_address_and_signature(&alice.public_key().to_address(), &signature.into()); + + // Submit it. + tx.submit_and_watch() + .await? + .wait_for_finalized_success() + .await?; + + Ok(()) +} diff --git a/subxt/src/book/usage/transactions.rs b/subxt/src/book/usage/transactions.rs index b263f5ae8a..b897790599 100644 --- a/subxt/src/book/usage/transactions.rs +++ b/subxt/src/book/usage/transactions.rs @@ -205,6 +205,15 @@ #![doc = include_str!("../../../examples/tx_status_stream.rs")] //! ``` //! +//! ### Signing transactions externally +//! +//! Subxt also allows you to get hold of the signer payload and hand that off to something else to be +//! signed. The signature can then be provided back to Subxt to build the final transaction to submit: +//! +//! ```rust,ignore +#![doc = include_str!("../../../examples/tx_partial.rs")] +//! ``` +//! //! Take a look at the API docs for [`crate::tx::TxProgress`], [`crate::tx::TxStatus`] and //! [`crate::tx::TxInBlock`] for more options. //! From 25583dcc654008f2e0de8a1dfc8b24e5fa36c518 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:19:22 +0300 Subject: [PATCH 058/137] testing: Modify the storage_fetch_raw_keys to reflect substrate-binary (#1667) * testing: Modify the storage_fetch_raw_keys to reflect substrate-binary changes Signed-off-by: Alexandru Vasile * 13 -> 14 accounts --------- Signed-off-by: Alexandru Vasile Co-authored-by: Niklas Adolfsson --- testing/integration-tests/src/full_client/client/mod.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing/integration-tests/src/full_client/client/mod.rs b/testing/integration-tests/src/full_client/client/mod.rs index 5cdedab679..2685551335 100644 --- a/testing/integration-tests/src/full_client/client/mod.rs +++ b/testing/integration-tests/src/full_client/client/mod.rs @@ -42,7 +42,7 @@ async fn storage_fetch_raw_keys() { .count() .await; - assert_eq!(len, 13) + assert_eq!(len, 14) } #[cfg(fullclient)] @@ -67,7 +67,7 @@ async fn storage_iter() { .count() .await; - assert_eq!(len, 13); + assert_eq!(len, 14); } #[cfg(fullclient)] From aea013d7910b58bc8424687af8006fdd1eb3cd74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:29:03 +0200 Subject: [PATCH 059/137] build(deps): bump serde_json from 1.0.117 to 1.0.119 (#1663) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.117 to 1.0.119. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.117...v1.0.119) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9ca98fc5d5..a53fe6057e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4095,9 +4095,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.117" +version = "1.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3" +checksum = "e8eddb61f0697cc3989c5d64b452f5488e2b8a60fd7d5076a3045076ffef8cb0" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 48ead3f0e4..4ad073d65c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -99,7 +99,7 @@ scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" serde = { version = "1.0.203", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.117", default-features = false } +serde_json = { version = "1.0.119", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.61" tokio = { version = "1.38", default-features = false } From d8a9ffdb50c0d3f27a3d41fd4cbed025bd318a62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:29:20 +0200 Subject: [PATCH 060/137] build(deps): bump jsonrpsee from 0.23.1 to 0.23.2 (#1666) Bumps [jsonrpsee](https://github.com/paritytech/jsonrpsee) from 0.23.1 to 0.23.2. - [Release notes](https://github.com/paritytech/jsonrpsee/releases) - [Changelog](https://github.com/paritytech/jsonrpsee/blob/v0.23.2/CHANGELOG.md) - [Commits](https://github.com/paritytech/jsonrpsee/compare/v0.23.1...v0.23.2) --- updated-dependencies: - dependency-name: jsonrpsee dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 28 ++++++++++++++-------------- Cargo.toml | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a53fe6057e..3a46708357 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2452,9 +2452,9 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95a130d27083a4001b7b2d72a19f08786299550f76c9bd5307498dce2c2b20fa" +checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2466,9 +2466,9 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "039db9fe25cd63b7221c3f8788c1ef4ea07987d40ec25a1e7d7a3c3e3e3fd130" +checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432" dependencies = [ "base64 0.22.0", "futures-channel", @@ -2491,9 +2491,9 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21545a9445fbd582840ff5160a9a3e12b8e6da582151cdb07bde9a1970ba3a24" +checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b" dependencies = [ "anyhow", "async-trait", @@ -2518,9 +2518,9 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb25cab482c8512c4f3323a5c90b95a3b8f7c90681a87bf7a68b942d52f08933" +checksum = "2d90064e04fb9d7282b1c71044ea94d0bbc6eff5621c66f1a0bce9e9de7cf3ac" dependencies = [ "async-trait", "base64 0.22.0", @@ -2543,9 +2543,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f511b714bca46f9a3e97c0e0eb21d2c112e83e444d2db535b5ec7093f5836d73" +checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af" dependencies = [ "beef", "http 1.1.0", @@ -2556,9 +2556,9 @@ dependencies = [ [[package]] name = "jsonrpsee-wasm-client" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8a6dfa0c35c8549fa8e003ce0bbcf37b051ab7ef85fce587e8f0ed7881c84d" +checksum = "4727ac037f834c6f04c0912cada7532dbddb54e92fbc64e33d6cb8c24af313c9" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", @@ -2567,9 +2567,9 @@ dependencies = [ [[package]] name = "jsonrpsee-ws-client" -version = "0.23.1" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "786c100eb67df2f2d863d231c2c6978bcf80ff4bf606ffc40e7e68ef562da7bf" +checksum = "1c28759775f5cb2f1ea9667672d3fe2b0e701d1f4b7b67954e60afe7fd058b5e" dependencies = [ "http 1.1.0", "jsonrpsee-client-transport", diff --git a/Cargo.toml b/Cargo.toml index 4ad073d65c..6bb2600d44 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -84,7 +84,7 @@ hex = { version = "0.4.3", default-features = false } heck = "0.5.0" impl-serde = { version = "0.4.0", default-features = false } indoc = "2" -jsonrpsee = { version = "0.23.1" } +jsonrpsee = { version = "0.23.2" } pretty_assertions = "1.4.0" primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" From 0cd5f6f67ac692fa606b658874d7a6237e516af2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:29:30 +0200 Subject: [PATCH 061/137] build(deps): bump clap from 4.5.7 to 4.5.8 (#1665) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.7 to 4.5.8. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.7...v4.5.8) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3a46708357..5a9a01d530 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -869,9 +869,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.7" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db83dced34638ad474f39f250d7fea9598bdd239eaced1bdf45d597da0f433f" +checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" dependencies = [ "clap_builder", "clap_derive", @@ -879,9 +879,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.7" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7e204572485eb3fbf28f871612191521df159bc3e15a9f5064c66dba3a8c05f" +checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" dependencies = [ "anstream", "anstyle", @@ -891,9 +891,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.5" +version = "4.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c780290ccf4fb26629baa7a1081e68ced113f1d3ec302fa5948f1c381ebf06c6" +checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -4883,7 +4883,7 @@ dependencies = [ name = "subxt-cli" version = "0.37.0" dependencies = [ - "clap 4.5.7", + "clap 4.5.8", "color-eyre", "frame-metadata 16.0.0", "heck 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index 6bb2600d44..a34c202645 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,7 +67,7 @@ assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } blake2 = { version = "0.10.6", default-features = false } -clap = { version = "4.5.7", features = ["derive", "cargo"] } +clap = { version = "4.5.8", features = ["derive", "cargo"] } cfg-if = "1.0.0" criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } From b076f4c66ca2b7627f32d899211ea99a47db1c28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 14:29:42 +0200 Subject: [PATCH 062/137] build(deps): bump either from 1.12.0 to 1.13.0 (#1664) Bumps [either](https://github.com/rayon-rs/either) from 1.12.0 to 1.13.0. - [Commits](https://github.com/rayon-rs/either/compare/1.12.0...1.13.0) --- updated-dependencies: - dependency-name: either dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5a9a01d530..13a83ad359 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1498,9 +1498,9 @@ dependencies = [ [[package]] name = "either" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "elliptic-curve" diff --git a/Cargo.toml b/Cargo.toml index a34c202645..3363148eb9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,7 +75,7 @@ color-eyre = "0.6.3" console_error_panic_hook = "0.1.7" darling = "0.20.9" derive-where = "1.2.7" -either = { version = "1.12.0", default-features = false } +either = { version = "1.13.0", default-features = false } frame-metadata = { version = "16.0.0", default-features = false } futures = { version = "0.3.30", default-features = false, features = ["std"] } getrandom = { version = "0.2", default-features = false } From 1cc99a6238a7275ec030b924323855cd2b1147c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:43:06 +0100 Subject: [PATCH 063/137] build(deps): bump trybuild from 1.0.96 to 1.0.97 (#1675) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.96 to 1.0.97. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.96...1.0.97) --- updated-dependencies: - dependency-name: trybuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 13a83ad359..8e0de4ed19 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5489,9 +5489,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.96" +version = "1.0.97" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33a5f13f11071020bb12de7a16b925d2d58636175c20c11dc5f96cb64bb6c9b3" +checksum = "5b1e5645f2ee8025c2f1d75e1138f2dd034d74e6ba54620f3c569ba2a2a1ea06" dependencies = [ "glob 0.3.1", "serde", diff --git a/Cargo.toml b/Cargo.toml index 3363148eb9..5bea37810b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -106,7 +106,7 @@ tokio = { version = "1.38", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" -trybuild = "1.0.96" +trybuild = "1.0.97" url = "2.5.2" wabt = "0.10.0" wasm-bindgen-test = "0.3.24" From c62c20288271016e66a837b9965f3ad0315ee398 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:43:20 +0100 Subject: [PATCH 064/137] build(deps): bump async-trait from 0.1.80 to 0.1.81 (#1674) Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.80 to 0.1.81. - [Release notes](https://github.com/dtolnay/async-trait/releases) - [Commits](https://github.com/dtolnay/async-trait/compare/0.1.80...0.1.81) --- updated-dependencies: - dependency-name: async-trait dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8e0de4ed19..2fa8cb69b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -462,9 +462,9 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de" [[package]] name = "async-trait" -version = "0.1.80" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 5bea37810b..8665e0ee4e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -62,7 +62,7 @@ all = "deny" manual-unwrap-or-default = "allow" [workspace.dependencies] -async-trait = "0.1.80" +async-trait = "0.1.81" assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } From 3648bd2e60d81a5d9127b5e84a34d078fa33e291 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 12:43:29 +0100 Subject: [PATCH 065/137] build(deps): bump serde from 1.0.203 to 1.0.204 (#1673) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.203 to 1.0.204. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.203...v1.0.204) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2fa8cb69b2..dd7f27a289 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4066,9 +4066,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094" +checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" dependencies = [ "serde_derive", ] @@ -4084,9 +4084,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.203" +version = "1.0.204" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba" +checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 8665e0ee4e..148f1592ad 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -98,7 +98,7 @@ scale-decode = { version = "0.13.1", default-features = false } scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" -serde = { version = "1.0.203", default-features = false, features = ["derive"] } +serde = { version = "1.0.204", default-features = false, features = ["derive"] } serde_json = { version = "1.0.119", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.61" From bb1a01256006374368a7edf6ed9c5533a1393dad Mon Sep 17 00:00:00 2001 From: Matteo Muraca <56828990+muraca@users.noreply.github.com> Date: Mon, 8 Jul 2024 15:30:00 +0200 Subject: [PATCH 066/137] Expose `secret_key` method for `ecdsa::Keypair` and `eth::Keypair` (#1628) * Expose `secret_key` method for `ecdsa::Keypair` and `eth::Keypair` * cargo fmt * fix eth::secret_key --------- Co-authored-by: James Wilson --- signer/src/ecdsa.rs | 5 +++++ signer/src/eth.rs | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/signer/src/ecdsa.rs b/signer/src/ecdsa.rs index 82c4d2f70d..52de73aee6 100644 --- a/signer/src/ecdsa.rs +++ b/signer/src/ecdsa.rs @@ -157,6 +157,11 @@ impl Keypair { PublicKey(self.0.public_key().serialize()) } + /// Obtain the [`SecretKey`] part of this key pair. This should be kept secret. + pub fn secret_key(&self) -> SecretKeyBytes { + *self.0.secret_key().as_ref() + } + /// Sign some message. These bytes can be used directly in a Substrate `MultiSignature::Ecdsa(..)`. pub fn sign(&self, message: &[u8]) -> Signature { self.sign_prehashed(&sp_crypto_hashing::blake2_256(message)) diff --git a/signer/src/eth.rs b/signer/src/eth.rs index dec98976a4..bc92d51029 100644 --- a/signer/src/eth.rs +++ b/signer/src/eth.rs @@ -97,6 +97,11 @@ impl Keypair { .map_err(|_| Error::InvalidSeed) } + /// Obtain the [`ecdsa::SecretKeyBytes`] of this keypair. + pub fn secret_key(&self) -> SecretKeyBytes { + self.0.secret_key() + } + /// Obtain the [`eth::PublicKey`] of this keypair. pub fn public_key(&self) -> PublicKey { let uncompressed = self.0 .0.public_key().serialize_uncompressed(); From 9517c8716338bdb50b68175742c4a407d8b6299e Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:31:33 +0100 Subject: [PATCH 067/137] Update Artifacts (auto-generated) (#1671) * Update Artifacts (auto-generated) * fix test --------- Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> Co-authored-by: James Wilson --- artifacts/demo_chain_specs/polkadot.json | 8 +- artifacts/polkadot_metadata_full.scale | Bin 414617 -> 418704 bytes artifacts/polkadot_metadata_small.scale | Bin 101538 -> 101812 bytes artifacts/polkadot_metadata_tiny.scale | Bin 69164 -> 69426 bytes cli/src/commands/explore/mod.rs | 1 + .../src/full_client/codegen/polkadot.rs | 1102 +++++++++++++---- 6 files changed, 873 insertions(+), 238 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index e8e85df1f6..ec0f5bd967 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x047ce796ef86d2d2fc832665ff80434f1bc3a62259a4170502310bd68cb8a1473dcaaf4501013314141100000000931d14110000000004c07b3af23720e4111ba831b9769b49f71185d8114af5aa6178fe9368e9dbf2bd1db9450101931d141100000000f32614110000000008196a5bceb8a6f221ee255bcfc5da82b3d945f56ee336cb099346d37c4e78fd4c70c2450101f3261411000000005330141100000000004808b35f79df5a82b6ed566e01ef5919038dc3d1f42c83b9170dfff57f0899f270c2450101f3261411000000005330141100000000000010196a5bceb8a6f221ee255bcfc5da82b3d945f56ee336cb099346d37c4e78fd4c70c2450101e922000000000000f3261411000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000862953391e72158890857d5ab745e1ddb7237d9417cb899b7ea56166e1a1d94c010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a42010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b06701000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000024c1be9d55af8a069eab1a11a97d6f3610cbf1b13b815eeef922506110bf60301000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b01000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc34010000000000000044920a50a8d83e0102c39bf84a36c18fb1a32160bffbdf5e1ccfebd7182bd95b0100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c240100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb05010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac600100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000005ad7e77053b21db02a81dd2e2cb62032afacc92299b186b96b2d257cde2d5a080100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000060bae0487cc202c7c5190fbcb6482e79b4aa63649660eacee791a2a306a0d8590100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000005e2a19c552438b09e112dfc997cc80a55a3a47dfe7426fde9ba546cab29cd62e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008419f256a17597af3f63e48513b78ab030cebe15c13c0fe29bf9170fac01c8700100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000021e899160a0153ba0f8af3a056243aab67ca87b0bb8616467898ae2a20b31afd01000000000000000400000000000000024808b35f79df5a82b6ed566e01ef5919038dc3d1f42c83b9170dfff57f0899f270c2450101e922000000000000f3261411000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000862953391e72158890857d5ab745e1ddb7237d9417cb899b7ea56166e1a1d94c010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a42010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b06701000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000024c1be9d55af8a069eab1a11a97d6f3610cbf1b13b815eeef922506110bf60301000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b01000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc34010000000000000044920a50a8d83e0102c39bf84a36c18fb1a32160bffbdf5e1ccfebd7182bd95b0100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c240100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb05010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac600100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000005ad7e77053b21db02a81dd2e2cb62032afacc92299b186b96b2d257cde2d5a080100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000060bae0487cc202c7c5190fbcb6482e79b4aa63649660eacee791a2a306a0d8590100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000005e2a19c552438b09e112dfc997cc80a55a3a47dfe7426fde9ba546cab29cd62e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008419f256a17597af3f63e48513b78ab030cebe15c13c0fe29bf9170fac01c8700100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000021e899160a0153ba0f8af3a056243aab67ca87b0bb8616467898ae2a20b31afd01000000000000000400000000000000027ce796ef86d2d2fc832665ff80434f1bc3a62259a4170502310bd68cb8a1473dcaaf450101e72200000000000033141411000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000862953391e72158890857d5ab745e1ddb7237d9417cb899b7ea56166e1a1d94c010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a42010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b06701000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000024c1be9d55af8a069eab1a11a97d6f3610cbf1b13b815eeef922506110bf60301000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b01000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc34010000000000000044920a50a8d83e0102c39bf84a36c18fb1a32160bffbdf5e1ccfebd7182bd95b0100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c240100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb05010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac600100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000005ad7e77053b21db02a81dd2e2cb62032afacc92299b186b96b2d257cde2d5a080100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000060bae0487cc202c7c5190fbcb6482e79b4aa63649660eacee791a2a306a0d8590100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000005e2a19c552438b09e112dfc997cc80a55a3a47dfe7426fde9ba546cab29cd62e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008419f256a17597af3f63e48513b78ab030cebe15c13c0fe29bf9170fac01c8700100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000001bee692e5cea7883a6da32a9dcba89ae6d425890b33bcbedbbaa5dda25a801d30100000000000000040000000000000002c07b3af23720e4111ba831b9769b49f71185d8114af5aa6178fe9368e9dbf2bd1db9450101e822000000000000931d1411000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000098192016f83ef2fe74dba1ecc6526efc61b79f3177c00dc7c053160391858f700100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee490040100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d640100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d707600501000000000000001e866bed92016cd2dcabe2d87fcaf8c1d7248255cafb9e10638fc3a2b476221b010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d01000000000000002254fb9324a6a9af450ce3a4f5ab25f55deb22161e520b2308b8aaff42e3aa740100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b0100000000000000862953391e72158890857d5ab745e1ddb7237d9417cb899b7ea56166e1a1d94c010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000f85f12f4fb92075bc59a1711f35e8f3c8313ff08028d2af80a79b3682a378559010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a42010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e6380100000000000000c264fe63e84cd004530d2a3eabdde5098fe5c6b619af7fc6c9cfeba01e75ee5701000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000e63a8ae6fad7457095d994ce2da05fc637122d2ca0c4cf7aa76a0f07192a3d69010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b06701000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000024c1be9d55af8a069eab1a11a97d6f3610cbf1b13b815eeef922506110bf60301000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b01000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc34010000000000000044920a50a8d83e0102c39bf84a36c18fb1a32160bffbdf5e1ccfebd7182bd95b0100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c240100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc7201000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb05010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac600100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f5334301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea38395501000000000000001e1c88ee34c1421a7c937eb2260647ae799d842855f8eae5850a805dd2693c000100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000002e1c4e3a1474325086c1ebf51c0cb6d335242921c645b7d0e070d9aa092afa68010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e0100000000000000683ce8ca29f09be942c929571aaa188b89625f28569721b41eb48329dc1b4b0a01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000005ad7e77053b21db02a81dd2e2cb62032afacc92299b186b96b2d257cde2d5a080100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e05842010000000000000060bae0487cc202c7c5190fbcb6482e79b4aa63649660eacee791a2a306a0d8590100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000005e2a19c552438b09e112dfc997cc80a55a3a47dfe7426fde9ba546cab29cd62e0100000000000000386bcf52f4c464e6a18169f776d69e90880301f01fcc8cc0ba451f1d7e6c3b7c01000000000000008419f256a17597af3f63e48513b78ab030cebe15c13c0fe29bf9170fac01c8700100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000006cc196b9e0d51b933de4cccb6e9df2f52bba9a9225bca4d89d3ad283f550777a0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5330449, - "finalizedBlockHeader": "0x727e00e45d9815c73947be546630e81ae99e930d4cd5a2382c229e197c329aafde101705c90444c3b0418c8d449d9bce38c15476a07a06829bbae1ee8a6e028b46ba29a0087e3808566b30ab50fdc609fcd100eb8a6402e8ef0e751f4b9da67a841551580c0642414245b501015d0000005d1f141100000000bafcd3e4046b8fa5c659cee5b382792b38add18faa8417172433b746ff6a102c4e7df18dc29c5f5cbaa8ce5c6e7f3c36d0ce72ea3a068cdbfa21cd3aab03bc00991758ee0d255eadf5f298dccd31c8ac5fb3dbe9e0b661ebd3b591b119b85605044245454684035de0a328d0be8479bbe85fd0e1101f76889cecdb9433f2d5e2b7ba73ab326add05424142450101984d9d953fbcaac2c549d869a0cdfec0b72d465b0eb3a273e2d397cbab5b2808011634c7853afc240679bb85e7d4181bbba96bfbe7fd04944ab042a6a935138f", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000001bae9b223279cf7f43805d7158bc4a31a981be184f969784091af289f854a0a80100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec801000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000907fc1295e137738f8862d34490ad0746b80926e236e05ef8b958084f1d91a850100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000bd26ab1d5334c20a4a6840be7bab84b98aec00f0d49eeac5b2c93f4db06dcb850100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000be2235b9d9c9164f494dd688000fb569a37d5c47912ef99b9ebda9318d13345e010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000f151ff04cc1a5380cb00ac1e4dfc46abc031c4450877a4db963bb3522ab51aab01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b89222010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000799363fc98b936b54755c8532ae88418a28c3ba30666e6e68dd57dd0ad80c00d0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec00100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b5801000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000600e433183aa04247203b358cbdb99116a3c5d6a3c4b2692487a2b3791de004d0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d010000000000000050f9fd6c0623020debb7843bcb832ee1d80db9b156d8e6083ccebd434fe9794701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd01000000000000005566b715a9b242296b7580227095f267f07c33d5a6e9a878010bb6971bf1ff1e010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000d50555d709e293864d91ca77494a0424d842151c92d74f8ee08b52d65d11cddb0100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f0100000000000000f42c2e2a4157d51d22d5997dea1342f65e1882e207fd0e64e8e5d44330857eef01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000158d9d1e1a7f91763f24ded661296c67d3351b345ee631a41486626e9354e4910100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000f174f78ebad0cfa91c428395afbad3e448bd958d10481a6a439028ea7d95b3d701000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000068f2c90b93ba6130eb3a03f568411a471d0710086a468f8cba32b34e37411dd0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000fd3d1c4982441db21060e8834c5ccb6331e81fbfa01756770dfe297d5038ac950100000000000000487da9661496aad61869534fe7397d6b1aa1786f4d587137005c0e7b4dc4c1cb0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a190010000000000000061914b4dba0a1e42e692016cb74943266b257339008ffed4644231a2b48df21a0100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003db5f801c2e208df9a9b55c5f2d459ee2c3dc9fb94e208695f2ee4025f4bed4f010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000067d38381d74d8575dcffc6e3340bc47241ef2ea177f66ed738a417ab1dd459301000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed010000000000000044715c3a912a898d9719750da1ab8dee74bad9256cc4f3922b53d2ee964acd200100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000b9f54ca6fa0be84b1c7b42a426f37cb4218cc7840b9e1aea647e215739cf19540100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd01000000000000005c3476954f173e1be823259907f3fd4bdb2b534d090ea5b7b2b3ac03403a80820100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000e423f5f90b85ef7d83f4c34b035abb61976a678b643d244a1242f239e3e6712201000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000001de97cc443740a0e0e0fdf166ef4515c387fec450fc4d4e141cebb41e1b7f8e90100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf70158600100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d060100000000000000c9c3952008fa118083591bd0647a97b3f3f531b5ccc10d21430724a4d6bba7230100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab401000000000000006932c28b248d36d9b3fec965a75b6e0ee0e10a7835eb874aa52ba747c492d05d010000000000000002246d9cae89005f399a6a68cd771ad53b52c5d557c17716b873fd42260e4f7b010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace10100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a8abb971b10439867351b3b23ad968edebee7dc255f0414cd20c60507909861a0100000000000000d36e255c71bbe47ef2eeec8e6182066fbeed17183ceef7c10eca89a3041d49dc01000000000000004e9fa37851f580bbd096fc81f5aa28df78d0c8f0f70963121785cd5095a8d9630100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac965901000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb01000000000000000c802c4d0fda23bc38f40210827903d520a0a4cf44ae4da7fb36ff933188faae010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000c696ade13ebfca6231299b7a3c0aede6830ec7b3533dc1d3ca9f46bf909f71d20100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a6010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f01000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000d4c8bb768da36c14fb8dca7cbfad9334c2cded80354a7e796b2ec006a225e3a8010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a88281901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000004655b8a8e7f4e3532b7aa5e461d25ca6d5af49e0557da59654d15fe1d1eda4c010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c010000000000000000ee1fc07e5a1fb79caae4187100b34b664bae76f42b552cbe8c96bfe6eca844010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000a7254986c00f94b1ced526583ce2ffc0e853afd27a8e90cd57178a328e6338660100000000000000ee47e05a65a6174fe68fe813b92c23422c44e3e9109fea3724b2c875b91bb6180100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa347010000000000000078a2957fa87dcd755360693156976dc31d1ca27a869e032fb1a2d46ae06fd8d10100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000068f911f5ffd2e94be67762e2eb02e792b79ac8983720f40615e27ad203e03c50100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b01000000000000003df78462f1c2d8b9e284cb16ec39beca0944049a267929f48e97b5bbe34211130100000000000000280084dd48c4c3ebf743e3a8448e2815fcf183dfd0121c19453278da053c20a301000000000000000ea1cd7154cd4d50d009d8db3d6d40897d9170ff97e6493c8d0dd2ca7458230701000000000000004d1ce79ea3e280f3466a03c32d30965034aa9e5db1e63d92ac30ac3573687a730100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a401000000000000009d56cbbe3020b94ea8cb122df6527ceecc8cade4632e81f23b485e773d27b58c01000000000000004b23879e03800309dac504a22712a2b8410d1d66d4a63e9fcbded79635f0bf3c010000000000000098763eb72b3f7dbb7a793bd1d4367af5f072ff45a1a6eae0e002e1eaa24c5d55010000000000000081b1eff37055bb1eb054e667ff1c7318e6acd21f9a3a3ddd46f1c9a1ed65387b0100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006b637efb1db7c91b689a3dc0a5e42b0f528e5f31d55b1c264452dda3aa2d83d9010000000000000097485aff1573c42971da2d363dd00e29dd61c8e285d100ace0347bfdb6b5981701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000001308000000000000000137c44501004d2000000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf4501" + "babeEpochChanges": "0x04562b123ef7d91762ee4094c7ba1e44201b635de54619b10aa9100459698ae20df4bd480101b327171100000000133117110000000004db761b0a4b92132e0fc3d37e1c2b2a6ec7e6908e79ea4becb8e9a12ea9906aab50c74801011331171100000000733a1711000000000429c989fd4a3853d01692f9920d1a0c1ad29e386927ec6b87c05fb7e6d255bfeba9d0480101733a171100000000d34317110000000000000c29c989fd4a3853d01692f9920d1a0c1ad29e386927ec6b87c05fb7e6d255bfeba9d04801013d23000000000000733a1711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b715901000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e03010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b24010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000081b0b2be787b16ce685b01ce226d2d9b31379d291c337c400f11c254368660a01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e49200601000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb2014010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e6701000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a010000000000000054acbf68ddc9a0b4fd60f05e64f4abc65d8d350b58a1619e6b262b6eb1923e3c0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e28c8f1902cdad2ff464571be0d5c7165072837901689d7bca649aa0b3bbb136010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e0100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000caba78186f6df5691a3e2401522e67b95798461f099c209115b12d1fd089ec050100000000000000040000000000000002562b123ef7d91762ee4094c7ba1e44201b635de54619b10aa9100459698ae20df4bd4801013b23000000000000b3271711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b715901000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e03010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000c4614886b937ae2ce556a34454c24d8f94a85ee96b3939aae53ce9ff6651bd470100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b24010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000081b0b2be787b16ce685b01ce226d2d9b31379d291c337c400f11c254368660a01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e49200601000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb2014010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e6701000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a010000000000000054acbf68ddc9a0b4fd60f05e64f4abc65d8d350b58a1619e6b262b6eb1923e3c0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e28c8f1902cdad2ff464571be0d5c7165072837901689d7bca649aa0b3bbb136010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e0100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000006a4880f724fdc88ebe9606f1e09bf7e5ad81167022212913540d2865212e651e0100000000000000040000000000000002db761b0a4b92132e0fc3d37e1c2b2a6ec7e6908e79ea4becb8e9a12ea9906aab50c74801013c2300000000000013311711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b715901000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e03010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000c4614886b937ae2ce556a34454c24d8f94a85ee96b3939aae53ce9ff6651bd470100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b24010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000081b0b2be787b16ce685b01ce226d2d9b31379d291c337c400f11c254368660a01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e49200601000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb2014010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e6701000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a010000000000000054acbf68ddc9a0b4fd60f05e64f4abc65d8d350b58a1619e6b262b6eb1923e3c0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e28c8f1902cdad2ff464571be0d5c7165072837901689d7bca649aa0b3bbb136010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e0100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000aa5692a0d8aa0022cd3aa829d6aa075b83053a20af9edd29e006f727e2036e6e0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5380030, + "finalizedBlockHeader": "0x580459d191fa3a77d79c2ce617228669b6474c7bd24602c8ab7a306b7ae3421da6492305316a3649c5b8c0d2d2d7faa561c4073ed05bed2837eb8df0d196dd5965b624344b6f04904adb2c7ec798fb6678c6403a4fa1d2f3eb6aedd34ee9142fdbff5daa0c0642414245b5010100000000d4321711000000009c816e4d9eca93046e9fd600ceb56948e01048bf18dc4bb138c6dddd40243d7ddf6c6bc78880a8cf729f7ec5ad24abd4a7b49507bf88c912949d2a1f2acc8c0fd70382377899831ef3601d2e60be320cbb972c723e6f91e7fb94e92298aea00704424545468403dd65a5f265c9dc01f980964507b2d95b741d03ed5b120a593c34636157a696c405424142450101f23bf7d425333e2d2187f659011f00be42aa6b4b842d9f0e38b10807359cf93334fa4f7f3007142bceeae4b309c5e24cdd80fe70a8380d8f86829c55a992dc8b", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000b1c91fbb1f574b1ab4e69685a0b5bbf1368c488e9b5e93766b05141be765456901000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000907fc1295e137738f8862d34490ad0746b80926e236e05ef8b958084f1d91a850100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000001b68f8281e8ed7d7486a83f77342de99ec9985bbe4ebebccc78a56375509b4580100000000000000f92d39f102331311ae6a4d051643cf10bd1490a5b00afaa4edc7d5d6af90f78b01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000008697140891a850c059747ecf501b0b746c682be9e305a4df6eb886a6559433d010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da81010000000000000010a50acde267a82fe4ce8bd482edfde9d63edee111511b56ff4c4c28f57046fa01000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec00100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000007a99eb5f9dd892ab541176abfcb3a9b87e184c9f5737f0c1e69b90f62c522aef0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000001a29efe6c120445dd714915875399d25ecc85451993fcecc445618e016d05e7e01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f8101000000000000000074497472b01dc3a0c379b9622ca2579b14b0ae540e10ad655afdbf8bb1d2490100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b01000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b0100000000000000700f01e62a9c97bb86cb5bbb57ac20c74af3695fcef14ebea1f133d3a9253cc701000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000cf36d693d43a42806084b06843128d50d6655f001dd6f027ac69c3b825bdd42701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd01000000000000005566b715a9b242296b7580227095f267f07c33d5a6e9a878010bb6971bf1ff1e010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000d50555d709e293864d91ca77494a0424d842151c92d74f8ee08b52d65d11cddb0100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000624c81575707fc5f918acc054bc80abafbcf42bd78750054c8d9e1c2e69f173f0100000000000000293ec1101d6cc9df89a04ede0ac8ced7418803cc1d52a36ca8e45cca734388f90100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a1900100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003db5f801c2e208df9a9b55c5f2d459ee2c3dc9fb94e208695f2ee4025f4bed4f0100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000016b36c754ae6e651c5c6342f5f9bce5299f4dee1111345883addc0b3e2329f18010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b0100000000000000f5ed118038230c29a138443aa6772e24aad7567226d6dd98e5596856a98166c90100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae0100000000000000067d38381d74d8575dcffc6e3340bc47241ef2ea177f66ed738a417ab1dd459301000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef390100000000000000c180ac4896d030d199247131f3aca75e70e2319e279d6d63cbaa6bc91bc6da4b01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000876ba7dafdef35f262f8903495b7ac6276c592665e5a3ecd28b9da29c1f0b8510100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe30d30ace5295db295a2e6592e7990ddeaa9f1a07abded61bcce0b6392626080100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d010000000000000043f0c689c19f75362242c2412fb65e09598d58b8b005f5044dfba06d463e6f8c0100000000000000ab1995aa88c7dc9c7a1590e78ffcbaaba885e7230109206d368471b88f89f7670100000000000000fb267d8f26a35c34d58b4dc0633cf56f5eb6882ec873270dfbb0e55c64404dc101000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000001de97cc443740a0e0e0fdf166ef4515c387fec450fc4d4e141cebb41e1b7f8e90100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf701586001000000000000000c3e4afee23a9fa0f291d0789dd41b4c0bcadf40b12e7ec3be5532dd1e7709da01000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d060100000000000000c9c3952008fa118083591bd0647a97b3f3f531b5ccc10d21430724a4d6bba7230100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb09009501000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac965901000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b3850100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb0100000000000000b04763d321fbfbf0b7c0ee6bb824158c09a120e7bac2d04fd26783d1768ff4af01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003b8488c862db2c807e131808dd79bb7f2c8297320f132efe1cb25ac5c84739bb01000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb01000000000000003af2616b6372dd7ee436589f2c9bcc7a8efdecbb40a92574b93f207b6806ba560100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c010000000000000000ee1fc07e5a1fb79caae4187100b34b664bae76f42b552cbe8c96bfe6eca844010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c70100000000000000367e8b4f569ccc588698343dea3e0666c7d77295a6e14c27bbd501f8261fb9ff01000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a40100000000000000e25d7eaacb625bd47c64f4d8a745718a0034000443167715e8709a1b6227cf1b01000000000000002dd8b91790e7023f68c52021f40fe08a5769eb7e3f3a6f6c8a54454012a5497401000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c90066528010000000000000097485aff1573c42971da2d363dd00e29dd61c8e285d100ace0347bfdb6b5981701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000002c08000000000000000169d2480100b12000000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd4801" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index 10690ffd9d58d49ab2f6c9469858c22fb85604bc..6e586e9649cad3e7a68b3295bc99ab3b150bc692 100644 GIT binary patch delta 16820 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 H`bqx}xbx=# diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 1797e90554803b50ee7ab1ec097313c5829b27b2..4671016e59d3632ab1856327c4eb52e73692e023 100644 GIT binary patch delta 3190 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 delta 3071 zcmaJ@eNa@_6~E`b`*1gbl(nD&l38$pWf3DPOik1gbghh~_{l(1B`@%-8`+O6yH(rR zK&Q5~#?IJN>uds=6|qu5*{li}P*){0Ok<;_B+(X?T2o17kWTo68Oij#w{>LQsWWHZ zyYJj{e&=`2z4zSr!9m{Iz+>!+NB&k)Am-=$XVz@5vR7_aluDPp!>%|ym2R)YW3wxj zvdb3q?Qex=Ta+ExCOp#uZ~5HMGziM?&I6p*U@jjP`HWJR$L4f!z8;1|(8Yh>=};JB z@#~y+g|i`%F<@+z?A9u^-WrdN?8ZcHg>f?0m2Ty1j7%7dwYuG$jfc(0@DB|ZVO+$Y z9!kTz4Vl7(h|f2s0bp)plKP?QZH=9Hp><#?2L3E~d36A^11y^HfbfXZf0@&ToW; z==YmmEab3YUDXz)+FPSkFLSyTDq#Ey%7+PzE!2!3`RBl5tUsKL*2Ax8qfJnPcMh+B zHE8@WIg2eO#!uFT5T9O`LJAIe$3GK)(Ub#LY;T&5MNJkQZCXx9g@I&TePkM;rL`tw z{gLlNG4>s?!3Lb)Tt?4_O_|uWN(ZJC`SjB)qsr2nuq=9Ud%aa(Wy%y zb35Sp(Hu-~oq^6j=4vS{eU5q6^6cPjhwAaWV`kWiw~uAU*K;tbMJaYvE87_>!OCN% z|2K8^@zm5vFRJ5CjmO*;lNK%oT`kE_uj%Ui61KD$vUfeTjjZZ6+RbSn?IUK4Moiet z*v*O9v^v?vSr=)xK@a*`mrmq) zmOaW!xpvDEDg?Wtf;R)Y+EQ@SiP_ox5$WEDPWJ{mP`WoX?2k|U5(aSH$v0pS&z;PI zA^h^>$D}C?nDKAziTXhm{T^rcXul=l)W96Fpt&snDCp#x}z^H5Dydf1t%O5y20nsAB<=#*g~RXwwY5@WHHfNeU-#-L6!5Jx=#( z*)7{CoJ5v_USj&krtz2?+y`-ZK4<|0eieL4h?DUB<1=vnsVu<|9(qn?B_^tlNfILo zGfb6ODz=|`8Pf3Ir&d;^Ns;Z#r|!E)lxzk$Xb&ML-ZGqjms5?i$TSWk1d(qXM4g2uZ z53}a%C$uNGqKU2*A0cX&qKWwY?^f}JA$>T~-TiiBgo|;qi!sW@A7R`qO}1_()Tbh- zDz0mh0upOc*|tfnP0}r|byeE!?n;;2X1Af`Ts8!7{kZ~aQG3qKTh%3jNj-t#mcUM{ zen!@%zD%qqBL3Ht!+#wWJ%oj!1e|$(8T8_7=ToTvymfwk?llSK7S_}_w<*=@YMh>0 z#(FiDMkDJ}gItjq3DLf9q`svh7%s@ruZ@0np;SXzfvKS>sW&7jFOpwZtS)EOmSs-I zX4{XvZdv_xQTtJ0D6gzn0<+m$uwb^49@z{Q$l<`1wQA&OCIgh-lS_6mdNT|XGr%RG z>3BP2#={|tffx@_CY3*!=gb}?Ih!KKw`zi2}5r7Zg8X}mNq z6JjQZl47D7mlUIhD!r76DVMA1N2u=dZ0bdAm$UQ+nh^{l{pJi@z6mRXoxL_ahCWH) zLn40%U%WaEM?T4c;b6+ulK`Xm=WBnV?)UEXT2bPO82{;TLK4?`w%3d1*K3?rTPwFv z?>D6e4S&5QKt|KU&j9jp^z-Xt1>YF_=!+jhtioe$U|g$sylw|x{h}!7y7@1Fil*|v z1K6=*pcA|}_0|yV!bi6Tz=t<)E6^WYdM8sLjA69>qmx*q-z^pDP76zNX>{jt!yZjJ6(vJ>#oH2%&!BXS`qHm+{KPEIcuhOdGIo; dry_run_api::DryRunApi { dry_run_api::DryRunApi } + pub fn location_to_account_api(&self) -> location_to_account_api::LocationToAccountApi { + location_to_account_api::LocationToAccountApi + } pub fn metadata(&self) -> metadata::Metadata { metadata::Metadata } @@ -458,7 +462,7 @@ pub mod api { ::subxt::ext::subxt_core::alloc::vec::Vec< runtime_types::xcm::VersionedAssetId, >, - runtime_types::xcm_fee_payment_runtime_api::fees::Error, + runtime_types::xcm_runtime_apis::fees::Error, >; } } @@ -487,7 +491,7 @@ pub mod api { use super::runtime_types; pub type Output = ::core::result::Result< runtime_types::sp_weights::weight_v2::Weight, - runtime_types::xcm_fee_payment_runtime_api::fees::Error, + runtime_types::xcm_runtime_apis::fees::Error, >; } } @@ -517,7 +521,7 @@ pub mod api { use super::runtime_types; pub type Output = ::core::result::Result< ::core::primitive::u128, - runtime_types::xcm_fee_payment_runtime_api::fees::Error, + runtime_types::xcm_runtime_apis::fees::Error, >; } } @@ -548,7 +552,7 @@ pub mod api { use super::runtime_types; pub type Output = ::core::result::Result< runtime_types::xcm::VersionedAssets, - runtime_types::xcm_fee_payment_runtime_api::fees::Error, + runtime_types::xcm_runtime_apis::fees::Error, >; } } @@ -601,10 +605,9 @@ pub mod api { "dry_run_call", types::DryRunCall { origin, call }, [ - 255u8, 47u8, 199u8, 225u8, 178u8, 150u8, 182u8, 201u8, 229u8, 233u8, - 217u8, 99u8, 219u8, 10u8, 224u8, 250u8, 52u8, 253u8, 31u8, 105u8, - 105u8, 232u8, 15u8, 139u8, 92u8, 227u8, 11u8, 204u8, 229u8, 119u8, - 28u8, 192u8, + 120u8, 205u8, 213u8, 8u8, 235u8, 239u8, 153u8, 40u8, 160u8, 1u8, 74u8, + 107u8, 172u8, 196u8, 102u8, 212u8, 45u8, 171u8, 215u8, 242u8, 98u8, + 29u8, 80u8, 194u8, 142u8, 183u8, 240u8, 21u8, 75u8, 18u8, 60u8, 17u8, ], ) } @@ -642,10 +645,10 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::result::Result< - runtime_types::xcm_fee_payment_runtime_api::dry_run::CallDryRunEffects< + runtime_types::xcm_runtime_apis::dry_run::CallDryRunEffects< runtime_types::rococo_runtime::RuntimeEvent, >, - runtime_types::xcm_fee_payment_runtime_api::dry_run::Error, + runtime_types::xcm_runtime_apis::dry_run::Error, >; } } @@ -675,10 +678,10 @@ pub mod api { pub mod output { use super::runtime_types; pub type Output = ::core::result::Result< - runtime_types::xcm_fee_payment_runtime_api::dry_run::XcmDryRunEffects< + runtime_types::xcm_runtime_apis::dry_run::XcmDryRunEffects< runtime_types::rococo_runtime::RuntimeEvent, >, - runtime_types::xcm_fee_payment_runtime_api::dry_run::Error, + runtime_types::xcm_runtime_apis::dry_run::Error, >; } } @@ -703,6 +706,66 @@ pub mod api { } } } + pub mod location_to_account_api { + use super::root_mod; + use super::runtime_types; + #[doc = " API for useful conversions between XCM `Location` and `AccountId`."] + pub struct LocationToAccountApi; + impl LocationToAccountApi { + #[doc = " Converts `Location` to `AccountId`."] + pub fn convert_location( + &self, + location: types::convert_location::Location, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::ConvertLocation, + types::convert_location::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "LocationToAccountApi", + "convert_location", + types::ConvertLocation { location }, + [ + 177u8, 18u8, 51u8, 215u8, 92u8, 244u8, 76u8, 112u8, 17u8, 169u8, 178u8, + 211u8, 218u8, 62u8, 162u8, 208u8, 204u8, 179u8, 209u8, 196u8, 53u8, + 73u8, 63u8, 14u8, 120u8, 142u8, 185u8, 141u8, 140u8, 111u8, 124u8, + 254u8, + ], + ) + } + } + pub mod types { + use super::runtime_types; + pub mod convert_location { + use super::runtime_types; + pub type Location = runtime_types::xcm::VersionedLocation; + pub mod output { + use super::runtime_types; + pub type Output = ::core::result::Result< + ::subxt::ext::subxt_core::utils::AccountId32, + runtime_types::xcm_runtime_apis::conversions::Error, + >; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ConvertLocation { + pub location: convert_location::Location, + } + } + } pub mod metadata { use super::root_mod; use super::runtime_types; @@ -2738,34 +2801,34 @@ pub mod api { ], ) } - #[doc = " Submits an unsigned extrinsic to report an equivocation. The caller"] - #[doc = " must provide the equivocation proof and a key ownership proof"] + #[doc = " Submits an unsigned extrinsic to report a double voting equivocation. The caller"] + #[doc = " must provide the double voting proof and a key ownership proof"] #[doc = " (should be obtained using `generate_key_ownership_proof`). The"] #[doc = " extrinsic will be unsigned and should only be accepted for local"] #[doc = " authorship (not to be broadcast to the network). This method returns"] #[doc = " `None` when creation of the extrinsic fails, e.g. if equivocation"] #[doc = " reporting is disabled for the given runtime (i.e. this method is"] #[doc = " hardcoded to return `None`). Only useful in an offchain context."] - pub fn submit_report_equivocation_unsigned_extrinsic( + pub fn submit_report_double_voting_unsigned_extrinsic( &self, - equivocation_proof : types :: submit_report_equivocation_unsigned_extrinsic :: EquivocationProof, - key_owner_proof : types :: submit_report_equivocation_unsigned_extrinsic :: KeyOwnerProof, + equivocation_proof : types :: submit_report_double_voting_unsigned_extrinsic :: EquivocationProof, + key_owner_proof : types :: submit_report_double_voting_unsigned_extrinsic :: KeyOwnerProof, ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< - types::SubmitReportEquivocationUnsignedExtrinsic, - types::submit_report_equivocation_unsigned_extrinsic::output::Output, + types::SubmitReportDoubleVotingUnsignedExtrinsic, + types::submit_report_double_voting_unsigned_extrinsic::output::Output, > { ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( "BeefyApi", - "submit_report_equivocation_unsigned_extrinsic", - types::SubmitReportEquivocationUnsignedExtrinsic { + "submit_report_double_voting_unsigned_extrinsic", + types::SubmitReportDoubleVotingUnsignedExtrinsic { equivocation_proof, key_owner_proof, }, [ - 170u8, 93u8, 106u8, 193u8, 102u8, 51u8, 222u8, 58u8, 165u8, 172u8, - 245u8, 128u8, 116u8, 25u8, 252u8, 107u8, 60u8, 93u8, 218u8, 91u8, - 132u8, 18u8, 214u8, 7u8, 135u8, 13u8, 248u8, 250u8, 7u8, 255u8, 169u8, - 231u8, + 150u8, 77u8, 238u8, 96u8, 27u8, 152u8, 189u8, 202u8, 142u8, 30u8, + 252u8, 43u8, 134u8, 87u8, 86u8, 188u8, 184u8, 126u8, 229u8, 230u8, + 106u8, 6u8, 0u8, 89u8, 47u8, 219u8, 138u8, 136u8, 6u8, 204u8, 189u8, + 213u8, ], ) } @@ -2855,7 +2918,7 @@ pub mod api { crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] pub struct ValidatorSet {} - pub mod submit_report_equivocation_unsigned_extrinsic { + pub mod submit_report_double_voting_unsigned_extrinsic { use super::runtime_types; pub type EquivocationProof = runtime_types::sp_consensus_beefy::DoubleVotingProof< @@ -2884,11 +2947,11 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] - pub struct SubmitReportEquivocationUnsignedExtrinsic { + pub struct SubmitReportDoubleVotingUnsignedExtrinsic { pub equivocation_proof: - submit_report_equivocation_unsigned_extrinsic::EquivocationProof, + submit_report_double_voting_unsigned_extrinsic::EquivocationProof, pub key_owner_proof: - submit_report_equivocation_unsigned_extrinsic::KeyOwnerProof, + submit_report_double_voting_unsigned_extrinsic::KeyOwnerProof, } pub mod generate_key_ownership_proof { use super::runtime_types; @@ -4941,9 +5004,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 18u8, 54u8, 239u8, 2u8, 203u8, 152u8, 49u8, 128u8, 168u8, 211u8, 214u8, 17u8, 62u8, - 114u8, 67u8, 60u8, 101u8, 160u8, 181u8, 195u8, 240u8, 154u8, 244u8, 112u8, 191u8, - 44u8, 216u8, 158u8, 133u8, 76u8, 175u8, 235u8, + 15u8, 225u8, 245u8, 255u8, 19u8, 57u8, 201u8, 198u8, 228u8, 47u8, 34u8, 207u8, + 45u8, 103u8, 163u8, 249u8, 15u8, 27u8, 130u8, 228u8, 89u8, 2u8, 179u8, 31u8, 210u8, + 205u8, 199u8, 21u8, 39u8, 64u8, 205u8, 106u8, ] } pub mod system { @@ -17248,10 +17311,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 18u8, 226u8, 91u8, 63u8, 59u8, 100u8, 185u8, 40u8, 180u8, 198u8, 40u8, - 182u8, 93u8, 118u8, 74u8, 62u8, 232u8, 10u8, 192u8, 171u8, 203u8, - 120u8, 196u8, 70u8, 223u8, 140u8, 35u8, 190u8, 29u8, 134u8, 186u8, - 90u8, + 9u8, 22u8, 139u8, 23u8, 248u8, 218u8, 169u8, 188u8, 92u8, 94u8, 69u8, + 134u8, 242u8, 66u8, 212u8, 146u8, 213u8, 233u8, 138u8, 25u8, 172u8, + 66u8, 135u8, 2u8, 222u8, 26u8, 148u8, 239u8, 61u8, 77u8, 125u8, 218u8, ], ) } @@ -18446,10 +18508,9 @@ pub mod api { "batch", types::Batch { calls }, [ - 197u8, 60u8, 206u8, 156u8, 16u8, 7u8, 227u8, 99u8, 74u8, 178u8, 52u8, - 145u8, 235u8, 23u8, 234u8, 131u8, 212u8, 12u8, 20u8, 194u8, 146u8, - 149u8, 144u8, 149u8, 222u8, 249u8, 229u8, 199u8, 11u8, 12u8, 78u8, - 239u8, + 208u8, 98u8, 242u8, 28u8, 18u8, 235u8, 136u8, 6u8, 81u8, 174u8, 121u8, + 30u8, 105u8, 77u8, 101u8, 94u8, 32u8, 228u8, 240u8, 248u8, 61u8, 45u8, + 241u8, 126u8, 49u8, 25u8, 9u8, 238u8, 231u8, 84u8, 45u8, 23u8, ], ) } @@ -18480,9 +18541,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 18u8, 144u8, 181u8, 191u8, 114u8, 40u8, 65u8, 88u8, 104u8, 124u8, 9u8, - 208u8, 72u8, 45u8, 80u8, 41u8, 244u8, 46u8, 197u8, 64u8, 81u8, 73u8, - 17u8, 171u8, 50u8, 142u8, 39u8, 145u8, 153u8, 230u8, 23u8, 146u8, + 209u8, 67u8, 214u8, 8u8, 214u8, 11u8, 133u8, 219u8, 38u8, 168u8, 145u8, + 138u8, 195u8, 15u8, 190u8, 18u8, 68u8, 58u8, 161u8, 161u8, 41u8, 135u8, + 230u8, 179u8, 92u8, 200u8, 57u8, 168u8, 190u8, 92u8, 63u8, 191u8, ], ) } @@ -18509,9 +18570,9 @@ pub mod api { "batch_all", types::BatchAll { calls }, [ - 157u8, 202u8, 0u8, 213u8, 120u8, 27u8, 13u8, 146u8, 35u8, 65u8, 32u8, - 32u8, 220u8, 77u8, 163u8, 83u8, 99u8, 25u8, 255u8, 135u8, 33u8, 41u8, - 161u8, 128u8, 142u8, 18u8, 95u8, 9u8, 197u8, 33u8, 203u8, 198u8, + 220u8, 155u8, 42u8, 113u8, 69u8, 62u8, 222u8, 125u8, 204u8, 86u8, 60u8, + 18u8, 136u8, 185u8, 82u8, 209u8, 83u8, 183u8, 61u8, 166u8, 78u8, 26u8, + 10u8, 24u8, 168u8, 77u8, 158u8, 115u8, 88u8, 182u8, 217u8, 179u8, ], ) } @@ -18535,9 +18596,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 94u8, 45u8, 194u8, 202u8, 252u8, 48u8, 217u8, 238u8, 62u8, 5u8, 66u8, - 71u8, 197u8, 164u8, 98u8, 239u8, 141u8, 10u8, 90u8, 73u8, 161u8, 242u8, - 73u8, 106u8, 128u8, 140u8, 206u8, 36u8, 178u8, 93u8, 99u8, 192u8, + 206u8, 91u8, 216u8, 49u8, 65u8, 124u8, 180u8, 194u8, 137u8, 190u8, + 208u8, 142u8, 50u8, 121u8, 12u8, 238u8, 93u8, 116u8, 101u8, 192u8, + 115u8, 97u8, 34u8, 196u8, 86u8, 170u8, 193u8, 119u8, 121u8, 255u8, + 165u8, 73u8, ], ) } @@ -18564,10 +18626,9 @@ pub mod api { "force_batch", types::ForceBatch { calls }, [ - 199u8, 107u8, 86u8, 246u8, 148u8, 179u8, 176u8, 174u8, 6u8, 16u8, - 114u8, 8u8, 167u8, 125u8, 206u8, 169u8, 95u8, 224u8, 178u8, 224u8, - 203u8, 95u8, 249u8, 175u8, 85u8, 52u8, 60u8, 100u8, 127u8, 64u8, 2u8, - 204u8, + 129u8, 11u8, 156u8, 160u8, 92u8, 130u8, 179u8, 125u8, 235u8, 186u8, + 71u8, 127u8, 236u8, 179u8, 134u8, 46u8, 176u8, 9u8, 16u8, 96u8, 34u8, + 77u8, 47u8, 2u8, 212u8, 221u8, 123u8, 72u8, 55u8, 200u8, 99u8, 249u8, ], ) } @@ -18591,10 +18652,9 @@ pub mod api { weight, }, [ - 50u8, 245u8, 114u8, 136u8, 121u8, 54u8, 81u8, 1u8, 50u8, 178u8, 176u8, - 158u8, 221u8, 41u8, 179u8, 208u8, 29u8, 156u8, 81u8, 182u8, 216u8, - 13u8, 250u8, 32u8, 10u8, 139u8, 145u8, 56u8, 185u8, 102u8, 213u8, - 207u8, + 215u8, 102u8, 83u8, 23u8, 181u8, 134u8, 227u8, 22u8, 199u8, 188u8, + 202u8, 102u8, 210u8, 169u8, 230u8, 246u8, 97u8, 45u8, 73u8, 85u8, 46u8, + 63u8, 0u8, 85u8, 12u8, 169u8, 89u8, 163u8, 17u8, 166u8, 10u8, 30u8, ], ) } @@ -24123,9 +24183,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 206u8, 180u8, 39u8, 82u8, 63u8, 74u8, 29u8, 28u8, 95u8, 149u8, 2u8, - 78u8, 234u8, 214u8, 143u8, 191u8, 62u8, 6u8, 43u8, 223u8, 76u8, 152u8, - 235u8, 102u8, 228u8, 143u8, 158u8, 230u8, 99u8, 66u8, 168u8, 93u8, + 69u8, 138u8, 195u8, 177u8, 254u8, 181u8, 98u8, 59u8, 130u8, 60u8, 80u8, + 224u8, 50u8, 62u8, 86u8, 21u8, 62u8, 149u8, 104u8, 139u8, 29u8, 118u8, + 37u8, 10u8, 186u8, 217u8, 121u8, 5u8, 209u8, 252u8, 251u8, 38u8, ], ) } @@ -25847,10 +25907,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 240u8, 181u8, 209u8, 119u8, 171u8, 133u8, 149u8, 153u8, 241u8, 127u8, - 207u8, 66u8, 144u8, 137u8, 68u8, 164u8, 212u8, 26u8, 174u8, 117u8, - 14u8, 83u8, 237u8, 162u8, 30u8, 19u8, 120u8, 223u8, 167u8, 65u8, 115u8, - 156u8, + 119u8, 227u8, 246u8, 241u8, 89u8, 16u8, 21u8, 196u8, 84u8, 69u8, 28u8, + 186u8, 162u8, 167u8, 40u8, 124u8, 128u8, 86u8, 21u8, 89u8, 229u8, + 209u8, 22u8, 186u8, 206u8, 226u8, 30u8, 80u8, 239u8, 105u8, 231u8, + 198u8, ], ) } @@ -25894,9 +25954,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 166u8, 76u8, 53u8, 217u8, 74u8, 72u8, 196u8, 51u8, 21u8, 28u8, 148u8, - 73u8, 172u8, 2u8, 237u8, 190u8, 146u8, 207u8, 46u8, 65u8, 1u8, 236u8, - 199u8, 109u8, 70u8, 249u8, 112u8, 235u8, 237u8, 201u8, 157u8, 27u8, + 249u8, 195u8, 67u8, 23u8, 232u8, 86u8, 203u8, 141u8, 69u8, 84u8, 82u8, + 211u8, 131u8, 124u8, 72u8, 218u8, 201u8, 223u8, 110u8, 231u8, 125u8, + 232u8, 89u8, 14u8, 239u8, 83u8, 194u8, 132u8, 228u8, 166u8, 72u8, + 248u8, ], ) } @@ -25936,10 +25997,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 155u8, 143u8, 110u8, 199u8, 174u8, 80u8, 166u8, 199u8, 81u8, 63u8, - 218u8, 189u8, 57u8, 56u8, 140u8, 105u8, 107u8, 188u8, 113u8, 147u8, - 71u8, 31u8, 215u8, 118u8, 195u8, 247u8, 243u8, 25u8, 148u8, 163u8, - 155u8, 24u8, + 129u8, 224u8, 87u8, 182u8, 42u8, 83u8, 234u8, 158u8, 231u8, 192u8, + 223u8, 221u8, 108u8, 172u8, 221u8, 249u8, 239u8, 202u8, 173u8, 59u8, + 216u8, 48u8, 153u8, 232u8, 138u8, 201u8, 61u8, 93u8, 13u8, 195u8, 75u8, + 53u8, ], ) } @@ -25964,10 +26025,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 104u8, 165u8, 148u8, 183u8, 78u8, 162u8, 139u8, 166u8, 75u8, 31u8, - 114u8, 86u8, 129u8, 240u8, 70u8, 125u8, 208u8, 206u8, 219u8, 100u8, - 219u8, 25u8, 19u8, 254u8, 122u8, 206u8, 216u8, 123u8, 113u8, 176u8, - 89u8, 2u8, + 17u8, 104u8, 248u8, 106u8, 111u8, 227u8, 132u8, 9u8, 190u8, 116u8, + 224u8, 180u8, 150u8, 104u8, 253u8, 211u8, 13u8, 239u8, 178u8, 30u8, + 81u8, 74u8, 115u8, 197u8, 157u8, 199u8, 208u8, 204u8, 82u8, 218u8, + 195u8, 208u8, ], ) } @@ -27083,9 +27144,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 235u8, 49u8, 239u8, 228u8, 75u8, 65u8, 96u8, 209u8, 95u8, 33u8, 35u8, - 7u8, 23u8, 251u8, 39u8, 151u8, 98u8, 209u8, 150u8, 94u8, 86u8, 195u8, - 64u8, 170u8, 16u8, 52u8, 82u8, 212u8, 211u8, 191u8, 146u8, 148u8, + 182u8, 238u8, 44u8, 127u8, 137u8, 82u8, 241u8, 19u8, 181u8, 182u8, + 147u8, 238u8, 159u8, 90u8, 196u8, 24u8, 118u8, 142u8, 88u8, 185u8, + 46u8, 177u8, 117u8, 85u8, 222u8, 160u8, 176u8, 214u8, 27u8, 54u8, + 209u8, 146u8, ], ) } @@ -27373,9 +27435,10 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 170u8, 177u8, 203u8, 12u8, 12u8, 19u8, 98u8, 145u8, 185u8, 4u8, 45u8, - 44u8, 79u8, 149u8, 248u8, 32u8, 148u8, 171u8, 251u8, 91u8, 85u8, 183u8, - 181u8, 19u8, 18u8, 82u8, 89u8, 87u8, 154u8, 96u8, 91u8, 177u8, + 215u8, 203u8, 165u8, 76u8, 187u8, 205u8, 55u8, 234u8, 47u8, 155u8, + 103u8, 156u8, 106u8, 57u8, 174u8, 193u8, 117u8, 48u8, 75u8, 188u8, + 199u8, 130u8, 38u8, 45u8, 242u8, 200u8, 221u8, 9u8, 2u8, 97u8, 81u8, + 90u8, ], ) } @@ -28064,9 +28127,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 211u8, 75u8, 188u8, 231u8, 69u8, 23u8, 162u8, 32u8, 164u8, 17u8, 213u8, - 176u8, 161u8, 104u8, 157u8, 233u8, 249u8, 124u8, 135u8, 172u8, 253u8, - 13u8, 170u8, 172u8, 58u8, 14u8, 175u8, 0u8, 199u8, 246u8, 78u8, 222u8, + 35u8, 45u8, 135u8, 163u8, 63u8, 98u8, 229u8, 156u8, 137u8, 162u8, 47u8, + 78u8, 178u8, 28u8, 48u8, 226u8, 54u8, 100u8, 93u8, 235u8, 192u8, 42u8, + 146u8, 240u8, 244u8, 199u8, 55u8, 213u8, 198u8, 99u8, 33u8, 210u8, ], ) } @@ -28129,9 +28192,10 @@ pub mod api { max_weight, }, [ - 7u8, 157u8, 123u8, 23u8, 63u8, 111u8, 59u8, 182u8, 75u8, 252u8, 97u8, - 241u8, 196u8, 208u8, 162u8, 42u8, 25u8, 16u8, 240u8, 5u8, 139u8, 111u8, - 226u8, 5u8, 221u8, 75u8, 141u8, 19u8, 192u8, 24u8, 38u8, 88u8, + 241u8, 113u8, 83u8, 71u8, 165u8, 17u8, 166u8, 226u8, 109u8, 161u8, 0u8, + 231u8, 203u8, 141u8, 175u8, 167u8, 197u8, 96u8, 197u8, 74u8, 60u8, + 84u8, 213u8, 229u8, 216u8, 162u8, 20u8, 123u8, 229u8, 99u8, 222u8, + 40u8, ], ) } @@ -42794,22 +42858,28 @@ pub mod api { use super::runtime_types; pub mod para_id_affinity { use super::runtime_types; - pub type ParaIdAffinity = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: CoreAffinityCount ; + pub type ParaIdAffinity = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: CoreAffinityCount ; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } pub mod queue_status { use super::runtime_types; - pub type QueueStatus = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueStatusType ; + pub type QueueStatus = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: QueueStatusType ; } pub mod free_entries { use super::runtime_types; - pub type FreeEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: EnqueuedOrder > ; + pub type FreeEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: EnqueuedOrder > ; } pub mod affinity_entries { use super::runtime_types; - pub type AffinityEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: EnqueuedOrder > ; + pub type AffinityEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: EnqueuedOrder > ; pub type Param0 = runtime_types::polkadot_primitives::v7::CoreIndex; } + pub mod revenue { + use super::runtime_types; + pub type Revenue = runtime_types::bounded_collections::bounded_vec::BoundedVec< + ::core::primitive::u128, + >; + } } pub struct StorageApi; impl StorageApi { @@ -42958,6 +43028,27 @@ pub mod api { ], ) } + #[doc = " Keeps track of accumulated revenue from on demand order sales."] + pub fn revenue( + &self, + ) -> ::subxt::ext::subxt_core::storage::address::StaticAddress< + (), + types::revenue::Revenue, + ::subxt::ext::subxt_core::utils::Yes, + ::subxt::ext::subxt_core::utils::Yes, + (), + > { + ::subxt::ext::subxt_core::storage::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "Revenue", + (), + [ + 42u8, 127u8, 42u8, 59u8, 80u8, 19u8, 151u8, 234u8, 157u8, 17u8, 183u8, + 129u8, 121u8, 39u8, 74u8, 43u8, 121u8, 14u8, 82u8, 11u8, 14u8, 182u8, + 125u8, 52u8, 37u8, 132u8, 159u8, 93u8, 106u8, 130u8, 225u8, 64u8, + ], + ) + } } } pub mod constants { @@ -42981,6 +43072,40 @@ pub mod api { ], ) } + #[doc = " The maximum number of blocks some historical revenue"] + #[doc = " information stored for."] + pub fn max_historical_revenue( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + ::core::primitive::u32, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "MaxHistoricalRevenue", + [ + 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 = " Identifier for the internal revenue balance."] + pub fn pallet_id( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + runtime_types::frame_support::PalletId, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "OnDemandAssignmentProvider", + "PalletId", + [ + 56u8, 243u8, 53u8, 83u8, 154u8, 179u8, 170u8, 80u8, 133u8, 173u8, 61u8, + 161u8, 47u8, 225u8, 146u8, 21u8, 50u8, 229u8, 248u8, 27u8, 104u8, 58u8, + 129u8, 197u8, 102u8, 160u8, 168u8, 205u8, 154u8, 42u8, 217u8, 53u8, + ], + ) + } } } } @@ -46217,6 +46342,36 @@ pub mod api { #[encode_as_type( crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" )] + #[doc = "Request to claim the instantaneous coretime sales revenue starting from the block it was"] + #[doc = "last claimed until and up to the block specified. The claimed amount value is sent back"] + #[doc = "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is"] + #[doc = "teleported to the Coretime chain."] + pub struct RequestRevenueAt { + pub when: request_revenue_at::When, + } + pub mod request_revenue_at { + use super::runtime_types; + pub type When = ::core::primitive::u32; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for RequestRevenueAt { + const PALLET: &'static str = "Coretime"; + const CALL: &'static str = "request_revenue_at"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] #[doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] #[doc = "to be used."] #[doc = ""] @@ -46272,6 +46427,27 @@ pub mod api { ], ) } + #[doc = "Request to claim the instantaneous coretime sales revenue starting from the block it was"] + #[doc = "last claimed until and up to the block specified. The claimed amount value is sent back"] + #[doc = "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is"] + #[doc = "teleported to the Coretime chain."] + pub fn request_revenue_at( + &self, + when: types::request_revenue_at::When, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Coretime", + "request_revenue_at", + types::RequestRevenueAt { when }, + [ + 177u8, 11u8, 232u8, 159u8, 238u8, 12u8, 176u8, 8u8, 83u8, 20u8, 36u8, + 223u8, 1u8, 202u8, 138u8, 236u8, 120u8, 161u8, 17u8, 161u8, 112u8, + 108u8, 79u8, 35u8, 141u8, 123u8, 166u8, 107u8, 220u8, 139u8, 167u8, + 67u8, + ], + ) + } #[doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] #[doc = "to be used."] #[doc = ""] @@ -46379,6 +46555,23 @@ pub mod api { ], ) } + #[doc = " The coretime chain pot location."] + pub fn broker_pot_location( + &self, + ) -> ::subxt::ext::subxt_core::constants::address::StaticAddress< + runtime_types::staging_xcm::v4::junctions::Junctions, + > { + ::subxt::ext::subxt_core::constants::address::StaticAddress::new_static( + "Coretime", + "BrokerPotLocation", + [ + 213u8, 204u8, 114u8, 183u8, 18u8, 16u8, 228u8, 20u8, 143u8, 180u8, + 234u8, 177u8, 117u8, 235u8, 149u8, 133u8, 92u8, 210u8, 84u8, 215u8, + 196u8, 230u8, 248u8, 192u8, 214u8, 175u8, 12u8, 161u8, 135u8, 75u8, + 128u8, 68u8, + ], + ) + } } } } @@ -47029,7 +47222,7 @@ pub mod api { #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] #[doc = " fee on the `dest` (and possibly reserve) chains."] #[doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] - #[doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] + #[doc = "- `remote_fees_id`: One of the included `assets` to be used to pay fees."] #[doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] #[doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] #[doc = " transfer, which also determines what happens to the assets on the destination chain."] @@ -47584,7 +47777,7 @@ pub mod api { #[doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] #[doc = " fee on the `dest` (and possibly reserve) chains."] #[doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] - #[doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] + #[doc = "- `remote_fees_id`: One of the included `assets` to be used to pay fees."] #[doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] #[doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] #[doc = " transfer, which also determines what happens to the assets on the destination chain."] @@ -49132,13 +49325,13 @@ pub mod api { #[doc = "equivocation proof and validate the given key ownership proof"] #[doc = "against the extracted offender. If both are valid, the offence"] #[doc = "will be reported."] - pub struct ReportEquivocation { + pub struct ReportDoubleVoting { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - report_equivocation::EquivocationProof, + report_double_voting::EquivocationProof, >, - pub key_owner_proof: report_equivocation::KeyOwnerProof, + pub key_owner_proof: report_double_voting::KeyOwnerProof, } - pub mod report_equivocation { + pub mod report_double_voting { use super::runtime_types; pub type EquivocationProof = runtime_types::sp_consensus_beefy::DoubleVotingProof< @@ -49148,9 +49341,9 @@ pub mod api { >; pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocation { + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportDoubleVoting { const PALLET: &'static str = "Beefy"; - const CALL: &'static str = "report_equivocation"; + const CALL: &'static str = "report_double_voting"; } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -49176,13 +49369,13 @@ pub mod api { #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] #[doc = "if the block author is defined it will be defined as the equivocation"] #[doc = "reporter."] - pub struct ReportEquivocationUnsigned { + pub struct ReportDoubleVotingUnsigned { pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< - report_equivocation_unsigned::EquivocationProof, + report_double_voting_unsigned::EquivocationProof, >, - pub key_owner_proof: report_equivocation_unsigned::KeyOwnerProof, + pub key_owner_proof: report_double_voting_unsigned::KeyOwnerProof, } - pub mod report_equivocation_unsigned { + pub mod report_double_voting_unsigned { use super::runtime_types; pub type EquivocationProof = runtime_types::sp_consensus_beefy::DoubleVotingProof< @@ -49192,9 +49385,9 @@ pub mod api { >; pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; } - impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportEquivocationUnsigned { + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportDoubleVotingUnsigned { const PALLET: &'static str = "Beefy"; - const CALL: &'static str = "report_equivocation_unsigned"; + const CALL: &'static str = "report_double_voting_unsigned"; } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -49226,6 +49419,168 @@ pub mod api { const PALLET: &'static str = "Beefy"; const CALL: &'static str = "set_new_genesis"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + pub struct ReportForkVoting { + pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + report_fork_voting::EquivocationProof, + >, + pub key_owner_proof: report_fork_voting::KeyOwnerProof, + } + pub mod report_fork_voting { + use super::runtime_types; + pub type EquivocationProof = runtime_types::sp_consensus_beefy::ForkVotingProof< + runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_mmr_primitives::AncestryProof< + ::subxt::ext::subxt_core::utils::H256, + >, + >; + pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportForkVoting { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "report_fork_voting"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + pub struct ReportForkVotingUnsigned { + pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + report_fork_voting_unsigned::EquivocationProof, + >, + pub key_owner_proof: report_fork_voting_unsigned::KeyOwnerProof, + } + pub mod report_fork_voting_unsigned { + use super::runtime_types; + pub type EquivocationProof = runtime_types::sp_consensus_beefy::ForkVotingProof< + runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_mmr_primitives::AncestryProof< + ::subxt::ext::subxt_core::utils::H256, + >, + >; + pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportForkVotingUnsigned { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "report_fork_voting_unsigned"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + pub struct ReportFutureBlockVoting { + pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + report_future_block_voting::EquivocationProof, + >, + pub key_owner_proof: report_future_block_voting::KeyOwnerProof, + } + pub mod report_future_block_voting { + use super::runtime_types; + pub type EquivocationProof = + runtime_types::sp_consensus_beefy::FutureBlockVotingProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >; + pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportFutureBlockVoting { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "report_future_block_voting"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + pub struct ReportFutureBlockVotingUnsigned { + pub equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + report_future_block_voting_unsigned::EquivocationProof, + >, + pub key_owner_proof: report_future_block_voting_unsigned::KeyOwnerProof, + } + pub mod report_future_block_voting_unsigned { + use super::runtime_types; + pub type EquivocationProof = + runtime_types::sp_consensus_beefy::FutureBlockVotingProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >; + pub type KeyOwnerProof = runtime_types::sp_session::MembershipProof; + } + impl ::subxt::ext::subxt_core::blocks::StaticExtrinsic for ReportFutureBlockVotingUnsigned { + const PALLET: &'static str = "Beefy"; + const CALL: &'static str = "report_future_block_voting_unsigned"; + } } pub struct TransactionApi; impl TransactionApi { @@ -49233,26 +49588,25 @@ pub mod api { #[doc = "equivocation proof and validate the given key ownership proof"] #[doc = "against the extracted offender. If both are valid, the offence"] #[doc = "will be reported."] - pub fn report_equivocation( + pub fn report_double_voting( &self, - equivocation_proof: types::report_equivocation::EquivocationProof, - key_owner_proof: types::report_equivocation::KeyOwnerProof, - ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + equivocation_proof: types::report_double_voting::EquivocationProof, + key_owner_proof: types::report_double_voting::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload { ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( "Beefy", - "report_equivocation", - types::ReportEquivocation { + "report_double_voting", + types::ReportDoubleVoting { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( equivocation_proof, ), key_owner_proof, }, [ - 196u8, 92u8, 30u8, 54u8, 79u8, 96u8, 54u8, 238u8, 29u8, 255u8, 252u8, - 236u8, 8u8, 104u8, 107u8, 190u8, 115u8, 54u8, 232u8, 58u8, 145u8, - 191u8, 110u8, 12u8, 165u8, 154u8, 48u8, 216u8, 178u8, 99u8, 123u8, - 218u8, + 191u8, 103u8, 205u8, 53u8, 2u8, 139u8, 97u8, 160u8, 39u8, 60u8, 235u8, + 187u8, 152u8, 245u8, 107u8, 55u8, 254u8, 113u8, 243u8, 116u8, 173u8, + 138u8, 229u8, 141u8, 9u8, 14u8, 113u8, 35u8, 47u8, 56u8, 34u8, 211u8, ], ) } @@ -49265,27 +49619,26 @@ pub mod api { #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] #[doc = "if the block author is defined it will be defined as the equivocation"] #[doc = "reporter."] - pub fn report_equivocation_unsigned( + pub fn report_double_voting_unsigned( &self, - equivocation_proof: types::report_equivocation_unsigned::EquivocationProof, - key_owner_proof: types::report_equivocation_unsigned::KeyOwnerProof, + equivocation_proof: types::report_double_voting_unsigned::EquivocationProof, + key_owner_proof: types::report_double_voting_unsigned::KeyOwnerProof, ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< - types::ReportEquivocationUnsigned, + types::ReportDoubleVotingUnsigned, > { ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( "Beefy", - "report_equivocation_unsigned", - types::ReportEquivocationUnsigned { + "report_double_voting_unsigned", + types::ReportDoubleVotingUnsigned { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( equivocation_proof, ), key_owner_proof, }, [ - 106u8, 120u8, 157u8, 177u8, 251u8, 12u8, 39u8, 235u8, 94u8, 241u8, - 75u8, 204u8, 100u8, 82u8, 246u8, 168u8, 238u8, 155u8, 163u8, 20u8, - 83u8, 81u8, 77u8, 206u8, 10u8, 159u8, 196u8, 223u8, 11u8, 98u8, 128u8, - 97u8, + 160u8, 71u8, 106u8, 163u8, 14u8, 55u8, 54u8, 11u8, 239u8, 189u8, 185u8, + 175u8, 229u8, 60u8, 58u8, 164u8, 213u8, 195u8, 135u8, 216u8, 244u8, + 44u8, 23u8, 22u8, 67u8, 236u8, 253u8, 154u8, 170u8, 40u8, 46u8, 201u8, ], ) } @@ -49309,6 +49662,121 @@ pub mod api { ], ) } + #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + pub fn report_fork_voting( + &self, + equivocation_proof: types::report_fork_voting::EquivocationProof, + key_owner_proof: types::report_fork_voting::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload + { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "report_fork_voting", + types::ReportForkVoting { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + equivocation_proof, + ), + key_owner_proof, + }, + [ + 103u8, 233u8, 45u8, 138u8, 239u8, 186u8, 23u8, 196u8, 43u8, 210u8, + 208u8, 15u8, 198u8, 49u8, 171u8, 183u8, 142u8, 163u8, 253u8, 226u8, + 207u8, 106u8, 84u8, 184u8, 12u8, 130u8, 78u8, 114u8, 195u8, 249u8, + 81u8, 84u8, + ], + ) + } + #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + pub fn report_fork_voting_unsigned( + &self, + equivocation_proof: types::report_fork_voting_unsigned::EquivocationProof, + key_owner_proof: types::report_fork_voting_unsigned::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ReportForkVotingUnsigned, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "report_fork_voting_unsigned", + types::ReportForkVotingUnsigned { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + equivocation_proof, + ), + key_owner_proof, + }, + [ + 211u8, 251u8, 231u8, 187u8, 27u8, 149u8, 165u8, 149u8, 133u8, 206u8, + 161u8, 106u8, 127u8, 114u8, 11u8, 99u8, 115u8, 165u8, 75u8, 25u8, 58u8, + 10u8, 100u8, 20u8, 27u8, 215u8, 53u8, 91u8, 180u8, 234u8, 146u8, 173u8, + ], + ) + } + #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + pub fn report_future_block_voting( + &self, + equivocation_proof: types::report_future_block_voting::EquivocationProof, + key_owner_proof: types::report_future_block_voting::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ReportFutureBlockVoting, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "report_future_block_voting", + types::ReportFutureBlockVoting { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + equivocation_proof, + ), + key_owner_proof, + }, + [ + 120u8, 166u8, 30u8, 87u8, 193u8, 115u8, 177u8, 199u8, 41u8, 88u8, + 241u8, 216u8, 207u8, 172u8, 220u8, 224u8, 39u8, 59u8, 233u8, 52u8, + 124u8, 180u8, 214u8, 243u8, 202u8, 101u8, 159u8, 95u8, 38u8, 141u8, + 177u8, 178u8, + ], + ) + } + #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + pub fn report_future_block_voting_unsigned( + &self, + equivocation_proof : types :: report_future_block_voting_unsigned :: EquivocationProof, + key_owner_proof: types::report_future_block_voting_unsigned::KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::tx::payload::StaticPayload< + types::ReportFutureBlockVotingUnsigned, + > { + ::subxt::ext::subxt_core::tx::payload::StaticPayload::new_static( + "Beefy", + "report_future_block_voting_unsigned", + types::ReportFutureBlockVotingUnsigned { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box::new( + equivocation_proof, + ), + key_owner_proof, + }, + [ + 138u8, 158u8, 33u8, 65u8, 55u8, 98u8, 124u8, 63u8, 104u8, 90u8, 211u8, + 249u8, 40u8, 126u8, 37u8, 101u8, 210u8, 168u8, 56u8, 209u8, 20u8, 26u8, + 166u8, 55u8, 4u8, 207u8, 49u8, 70u8, 110u8, 210u8, 239u8, 74u8, + ], + ) + } } } pub mod storage { @@ -52082,10 +52550,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 52u8, 250u8, 180u8, 149u8, 25u8, 228u8, 82u8, 212u8, 76u8, 52u8, 200u8, - 56u8, 94u8, 78u8, 240u8, 148u8, 65u8, 169u8, 253u8, 147u8, 189u8, - 139u8, 150u8, 220u8, 112u8, 229u8, 71u8, 207u8, 29u8, 196u8, 229u8, - 76u8, + 210u8, 62u8, 53u8, 174u8, 26u8, 140u8, 61u8, 121u8, 107u8, 77u8, 83u8, + 157u8, 80u8, 29u8, 123u8, 49u8, 109u8, 61u8, 207u8, 119u8, 138u8, + 162u8, 142u8, 154u8, 15u8, 61u8, 90u8, 60u8, 49u8, 27u8, 248u8, 53u8, ], ) } @@ -52108,10 +52575,9 @@ pub mod api { weight, }, [ - 3u8, 94u8, 124u8, 177u8, 77u8, 148u8, 195u8, 27u8, 235u8, 160u8, 199u8, - 182u8, 27u8, 214u8, 206u8, 115u8, 123u8, 82u8, 235u8, 171u8, 102u8, - 107u8, 10u8, 231u8, 98u8, 243u8, 139u8, 229u8, 19u8, 61u8, 229u8, - 237u8, + 66u8, 52u8, 251u8, 1u8, 179u8, 70u8, 114u8, 215u8, 87u8, 112u8, 32u8, + 186u8, 223u8, 149u8, 189u8, 255u8, 124u8, 50u8, 232u8, 152u8, 209u8, + 7u8, 150u8, 98u8, 33u8, 36u8, 95u8, 165u8, 77u8, 126u8, 132u8, 113u8, ], ) } @@ -52151,10 +52617,9 @@ pub mod api { call: ::subxt::ext::subxt_core::alloc::boxed::Box::new(call), }, [ - 137u8, 137u8, 109u8, 207u8, 88u8, 23u8, 193u8, 224u8, 76u8, 159u8, - 17u8, 76u8, 117u8, 113u8, 111u8, 217u8, 148u8, 35u8, 97u8, 26u8, 9u8, - 181u8, 113u8, 65u8, 46u8, 171u8, 178u8, 182u8, 125u8, 222u8, 180u8, - 212u8, + 61u8, 209u8, 217u8, 207u8, 136u8, 42u8, 1u8, 243u8, 153u8, 55u8, 128u8, + 14u8, 195u8, 39u8, 82u8, 141u8, 145u8, 201u8, 204u8, 165u8, 66u8, + 138u8, 35u8, 221u8, 90u8, 172u8, 23u8, 155u8, 75u8, 100u8, 147u8, 50u8, ], ) } @@ -53967,7 +54432,7 @@ pub mod api { #[doc = "equivocation proof and validate the given key ownership proof"] #[doc = "against the extracted offender. If both are valid, the offence"] #[doc = "will be reported."] - report_equivocation { + report_double_voting { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_beefy::DoubleVotingProof< ::core::primitive::u32, @@ -53987,7 +54452,7 @@ pub mod api { #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] #[doc = "if the block author is defined it will be defined as the equivocation"] #[doc = "reporter."] - report_equivocation_unsigned { + report_double_voting_unsigned { equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< runtime_types::sp_consensus_beefy::DoubleVotingProof< ::core::primitive::u32, @@ -54005,6 +54470,78 @@ pub mod api { set_new_genesis { delay_in_blocks: ::core::primitive::u32, }, + #[codec(index = 3)] + #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + report_fork_voting { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + runtime_types::sp_consensus_beefy::ForkVotingProof< + runtime_types::sp_runtime::generic::header::Header< + ::core::primitive::u32, + >, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_mmr_primitives::AncestryProof< + ::subxt::ext::subxt_core::utils::H256, + >, + >, + >, + key_owner_proof: runtime_types::sp_session::MembershipProof, + }, + #[codec(index = 4)] + #[doc = "Report fork voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + report_fork_voting_unsigned { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + runtime_types::sp_consensus_beefy::ForkVotingProof< + runtime_types::sp_runtime::generic::header::Header< + ::core::primitive::u32, + >, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_mmr_primitives::AncestryProof< + ::subxt::ext::subxt_core::utils::H256, + >, + >, + >, + key_owner_proof: runtime_types::sp_session::MembershipProof, + }, + #[codec(index = 5)] + #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + report_future_block_voting { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + runtime_types::sp_consensus_beefy::FutureBlockVotingProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >, + >, + key_owner_proof: runtime_types::sp_session::MembershipProof, + }, + #[codec(index = 6)] + #[doc = "Report future block voting equivocation. This method will verify the equivocation proof"] + #[doc = "and validate the given key ownership proof against the extracted offender."] + #[doc = "If both are valid, the offence will be reported."] + #[doc = ""] + #[doc = "This extrinsic must be called unsigned and it is expected that only"] + #[doc = "block authors will call it (validated in `ValidateUnsigned`), as such"] + #[doc = "if the block author is defined it will be defined as the equivocation"] + #[doc = "reporter."] + report_future_block_voting_unsigned { + equivocation_proof: ::subxt::ext::subxt_core::alloc::boxed::Box< + runtime_types::sp_consensus_beefy::FutureBlockVotingProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >, + >, + key_owner_proof: runtime_types::sp_session::MembershipProof, + }, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -54027,12 +54564,21 @@ pub mod api { #[doc = "A key ownership proof provided as part of an equivocation report is invalid."] InvalidKeyOwnershipProof, #[codec(index = 1)] - #[doc = "An equivocation proof provided as part of an equivocation report is invalid."] - InvalidEquivocationProof, + #[doc = "A double voting proof provided as part of an equivocation report is invalid."] + InvalidDoubleVotingProof, #[codec(index = 2)] + #[doc = "A fork voting proof provided as part of an equivocation report is invalid."] + InvalidForkVotingProof, + #[codec(index = 3)] + #[doc = "A future block voting proof provided as part of an equivocation report is invalid."] + InvalidFutureBlockVotingProof, + #[codec(index = 4)] + #[doc = "The session of the equivocation proof is invalid"] + InvalidEquivocationProofSession, + #[codec(index = 5)] #[doc = "A given equivocation report is valid but already previously reported."] DuplicateOffenceReport, - #[codec(index = 3)] + #[codec(index = 6)] #[doc = "Submitted configuration is invalid."] InvalidConfiguration, } @@ -57949,6 +58495,9 @@ pub mod api { #[codec(index = 9)] #[doc = "The new member to exchange is the same as the old member"] SameMember, + #[codec(index = 10)] + #[doc = "The max member count for the rank has been reached."] + TooManyMembers, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -61656,7 +62205,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v4 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = " notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = " `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = " to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = " and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = " assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = " from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = " the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = " mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = " This is usually as simple as:"] # [doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = " but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = " parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = " transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , } + # [codec (index = 0)] send { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , } , # [codec (index = 1)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_teleport_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 2)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**"] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,"] # [doc = "with all fees taken as needed from the asset."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , } , # [codec (index = 3)] # [doc = "Execute an XCM message from a local, signed, origin."] # [doc = ""] # [doc = "An event is deposited indicating whether `msg` could be executed completely or only"] # [doc = "partially."] # [doc = ""] # [doc = "No more than `max_weight` will be used in its attempted execution. If this is less than"] # [doc = "the maximum amount of weight that the message could take to be executed, then no"] # [doc = "execution attempt will be made."] execute { message : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , max_weight : runtime_types :: sp_weights :: weight_v2 :: Weight , } , # [codec (index = 4)] # [doc = "Extoll that a particular destination can be communicated with through a particular"] # [doc = "version of XCM."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The destination that is being described."] # [doc = "- `xcm_version`: The latest version of XCM that `location` supports."] force_xcm_version { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm :: v4 :: location :: Location > , version : :: core :: primitive :: u32 , } , # [codec (index = 5)] # [doc = "Set a safe XCM version (the version that XCM should be encoded with if the most recent"] # [doc = "version a destination can accept is unknown)."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable."] force_default_xcm_version { maybe_xcm_version : :: core :: option :: Option < :: core :: primitive :: u32 > , } , # [codec (index = 6)] # [doc = "Ask a location to notify us regarding their XCM version and any changes to it."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we should subscribe for XCM version notifications."] force_subscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 7)] # [doc = "Require that a particular destination should no longer notify us regarding any XCM"] # [doc = "version changes."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `location`: The location to which we are currently subscribed for XCM version"] # [doc = " notifications which we no longer desire."] force_unsubscribe_version_notify { location : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 8)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve."] # [doc = ""] # [doc = "`assets` must have same reserve location and may not be teleportable to `dest`."] # [doc = " - `assets` have local reserve: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `assets` have destination reserve: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move"] # [doc = " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`"] # [doc = " to mint and deposit reserve-based assets to `beneficiary`."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_reserve_transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 9)] # [doc = "Teleport some assets from the local chain to some destination chain."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` chain."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] limited_teleport_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 10)] # [doc = "Set or unset the global suspension state of the XCM executor."] # [doc = ""] # [doc = "- `origin`: Must be an origin specified by AdminOrigin."] # [doc = "- `suspended`: `true` to suspend, `false` to resume."] force_suspension { suspended : :: core :: primitive :: bool , } , # [codec (index = 11)] # [doc = "Transfer some assets from the local chain to the destination chain through their local,"] # [doc = "destination or remote reserve, or through teleports."] # [doc = ""] # [doc = "Fee payment on the destination side is made from the asset in the `assets` vector of"] # [doc = "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for"] # [doc = "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the"] # [doc = "operation will fail and the sent assets may be at risk."] # [doc = ""] # [doc = "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable"] # [doc = "to `dest`, no limitations imposed on `fees`."] # [doc = " - for local reserve: transfer assets to sovereign account of destination chain and"] # [doc = " forward a notification XCM to `dest` to mint and deposit reserve-based assets to"] # [doc = " `beneficiary`."] # [doc = " - for destination reserve: burn local assets and forward a notification to `dest` chain"] # [doc = " to withdraw the reserve assets from this chain's sovereign account and deposit them"] # [doc = " to `beneficiary`."] # [doc = " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves"] # [doc = " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint"] # [doc = " and deposit reserve-based assets to `beneficiary`."] # [doc = " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport"] # [doc = " assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `X2(Parent,"] # [doc = " Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send"] # [doc = " from relay to parachain."] # [doc = "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will"] # [doc = " generally be an `AccountId32` value."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `fee_asset_item`: The index into `assets` of the item which should be used to pay"] # [doc = " fees."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , fee_asset_item : :: core :: primitive :: u32 , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , # [codec (index = 12)] # [doc = "Claims assets trapped on this pallet because of leftover assets during XCM execution."] # [doc = ""] # [doc = "- `origin`: Anyone can call this extrinsic."] # [doc = "- `assets`: The exact assets that were trapped. Use the version to specify what version"] # [doc = "was the latest when they were trapped."] # [doc = "- `beneficiary`: The location/account where the claimed assets will be deposited."] claim_assets { assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , beneficiary : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , } , # [codec (index = 13)] # [doc = "Transfer assets from the local chain to the destination chain using explicit transfer"] # [doc = "types for assets and fees."] # [doc = ""] # [doc = "`assets` must have same reserve location or may be teleportable to `dest`. Caller must"] # [doc = "provide the `assets_transfer_type` to be used for `assets`:"] # [doc = " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination"] # [doc = " chain and forward a notification XCM to `dest` to mint and deposit reserve-based"] # [doc = " assets to `beneficiary`."] # [doc = " - `TransferType::DestinationReserve`: burn local assets and forward a notification to"] # [doc = " `dest` chain to withdraw the reserve assets from this chain's sovereign account and"] # [doc = " deposit them to `beneficiary`."] # [doc = " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`"] # [doc = " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another"] # [doc = " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically"] # [doc = " the remote `reserve` is Asset Hub."] # [doc = " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to"] # [doc = " mint/teleport assets and deposit them to `beneficiary`."] # [doc = ""] # [doc = "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to"] # [doc = "buy execution using transferred `assets` identified by `remote_fees_id`."] # [doc = "Make sure enough of the specified `remote_fees_id` asset is included in the given list"] # [doc = "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight"] # [doc = "is needed than `weight_limit`, then the operation will fail and the sent assets may be"] # [doc = "at risk."] # [doc = ""] # [doc = "`remote_fees_id` may use different transfer type than rest of `assets` and can be"] # [doc = "specified through `fees_transfer_type`."] # [doc = ""] # [doc = "The caller needs to specify what should happen to the transferred assets once they reach"] # [doc = "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which"] # [doc = "contains the instructions to execute on `dest` as a final step."] # [doc = " This is usually as simple as:"] # [doc = " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,"] # [doc = " but could be something more exotic like sending the `assets` even further."] # [doc = ""] # [doc = "- `origin`: Must be capable of withdrawing the `assets` and executing XCM."] # [doc = "- `dest`: Destination context for the assets. Will typically be `[Parent,"] # [doc = " Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from"] # [doc = " relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from"] # [doc = " parachain across a bridge to another ecosystem destination."] # [doc = "- `assets`: The assets to be withdrawn. This should include the assets used to pay the"] # [doc = " fee on the `dest` (and possibly reserve) chains."] # [doc = "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`."] # [doc = "- `remote_fees_id`: One of the included `assets` to be used to pay fees."] # [doc = "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets."] # [doc = "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the"] # [doc = " transfer, which also determines what happens to the assets on the destination chain."] # [doc = "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase."] transfer_assets_using_type_and_then { dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedLocation > , assets : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssets > , assets_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , remote_fees_id : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedAssetId > , fees_transfer_type : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: staging_xcm_executor :: traits :: asset_transfer :: TransferType > , custom_xcm_on_dest : :: subxt :: ext :: subxt_core :: alloc :: boxed :: Box < runtime_types :: xcm :: VersionedXcm > , weight_limit : runtime_types :: xcm :: v3 :: WeightLimit , } , } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -65106,95 +65655,94 @@ pub mod api { SpotPriceSet { spot_price: ::core::primitive::u128 }, } } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct CoreAffinityCount { - pub core_index: runtime_types::polkadot_primitives::v7::CoreIndex, - pub count: ::core::primitive::u32, + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct CoreAffinityCount { + pub core_index: runtime_types::polkadot_primitives::v7::CoreIndex, + pub count: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct EnqueuedOrder { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub idx : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: QueueIndex , } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueIndex(pub ::core::primitive::u32); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueStatusType { pub traffic : runtime_types :: sp_arithmetic :: fixed_point :: FixedU128 , pub next_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: QueueIndex , pub smallest_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: QueueIndex , pub freed_indices : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: ReverseQueueIndex > , } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ReverseQueueIndex(pub ::core::primitive::u32); } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct EnqueuedOrder { - pub para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, - pub idx: - runtime_types::polkadot_runtime_parachains::assigner_on_demand::QueueIndex, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct QueueIndex(pub ::core::primitive::u32); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct QueueStatusType { pub traffic : runtime_types :: sp_arithmetic :: fixed_point :: FixedU128 , pub next_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueIndex , pub smallest_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: QueueIndex , pub freed_indices : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: ReverseQueueIndex > , } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct ReverseQueueIndex(pub ::core::primitive::u32); } pub mod configuration { use super::runtime_types; @@ -65321,7 +65869,7 @@ pub mod api { )] #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] pub enum Call { - # [codec (index = 1)] # [doc = "Request the configuration to be updated with the specified number of cores. Warning:"] # [doc = "Since this only schedules a configuration update, it takes two sessions to come into"] # [doc = "effect."] # [doc = ""] # [doc = "- `origin`: Root or the Coretime Chain"] # [doc = "- `count`: total number of cores"] request_core_count { count : :: core :: primitive :: u16 , } , # [codec (index = 4)] # [doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] # [doc = "to be used."] # [doc = ""] # [doc = "Parameters:"] # [doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain."] # [doc = "-`core`: The core that should be scheduled."] # [doc = "-`begin`: The starting blockheight of the instruction."] # [doc = "-`assignment`: How the blockspace should be utilised."] # [doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] assign_core { core : :: core :: primitive :: u16 , begin : :: core :: primitive :: u32 , assignment : :: subxt :: ext :: subxt_core :: alloc :: 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 > , } , } + # [codec (index = 1)] # [doc = "Request the configuration to be updated with the specified number of cores. Warning:"] # [doc = "Since this only schedules a configuration update, it takes two sessions to come into"] # [doc = "effect."] # [doc = ""] # [doc = "- `origin`: Root or the Coretime Chain"] # [doc = "- `count`: total number of cores"] request_core_count { count : :: core :: primitive :: u16 , } , # [codec (index = 2)] # [doc = "Request to claim the instantaneous coretime sales revenue starting from the block it was"] # [doc = "last claimed until and up to the block specified. The claimed amount value is sent back"] # [doc = "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is"] # [doc = "teleported to the Coretime chain."] request_revenue_at { when : :: core :: primitive :: u32 , } , # [codec (index = 4)] # [doc = "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is"] # [doc = "to be used."] # [doc = ""] # [doc = "Parameters:"] # [doc = "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain."] # [doc = "-`core`: The core that should be scheduled."] # [doc = "-`begin`: The starting blockheight of the instruction."] # [doc = "-`assignment`: How the blockspace should be utilised."] # [doc = "-`end_hint`: An optional hint as to when this particular set of instructions will end."] assign_core { core : :: core :: primitive :: u16 , begin : :: core :: primitive :: u32 , assignment : :: subxt :: ext :: subxt_core :: alloc :: 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 :: subxt_core :: ext :: codec :: Decode, :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, @@ -65342,6 +65890,13 @@ pub mod api { #[codec(index = 0)] #[doc = "The paraid making the call is not the coretime brokerage system parachain."] NotBroker, + #[codec(index = 1)] + #[doc = "Requested revenue information `when` parameter was in the future from the current"] + #[doc = "block height."] + RequestedFutureRevenue, + #[codec(index = 2)] + #[doc = "Failed to transfer assets to the coretime chain"] + AssetTransferFailed, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, @@ -67879,6 +68434,44 @@ pub mod api { #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct ForkVotingProof<_0, _1, _2> { + pub vote: runtime_types::sp_consensus_beefy::VoteMessage< + ::core::primitive::u32, + _1, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, + >, + pub ancestry_proof: _2, + pub header: _0, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct FutureBlockVotingProof<_0, _1> { + pub vote: runtime_types::sp_consensus_beefy::VoteMessage< + _0, + _1, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Signature, + >, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct ValidatorSet<_0> { pub validators: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, pub id: ::core::primitive::u64, @@ -68137,6 +68730,23 @@ pub mod api { #[codec(dumb_trait_bound)] #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + pub struct AncestryProof<_0> { + pub prev_peaks: ::subxt::ext::subxt_core::alloc::vec::Vec<_0>, + pub prev_leaf_count: ::core::primitive::u64, + pub leaf_count: ::core::primitive::u64, + pub items: ::subxt::ext::subxt_core::alloc::vec::Vec<(::core::primitive::u64, _0)>, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] pub struct EncodableOpaqueLeaf( pub ::subxt::ext::subxt_core::alloc::vec::Vec<::core::primitive::u8>, ); @@ -71940,8 +72550,32 @@ pub mod api { V4(runtime_types::staging_xcm::v4::Xcm), } } - pub mod xcm_fee_payment_runtime_api { + pub mod xcm_runtime_apis { use super::runtime_types; + pub mod conversions { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub enum Error { + #[codec(index = 0)] + Unsupported, + #[codec(index = 1)] + VersionedConversionFailed, + } + } pub mod dry_run { use super::runtime_types; #[derive( From f9d6f84bdd58e5e9ab0464e2052c8ed6a62b16ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 14:31:48 +0100 Subject: [PATCH 068/137] build(deps): bump serde_json from 1.0.119 to 1.0.120 (#1672) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.119 to 1.0.120. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.119...v1.0.120) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dd7f27a289..e6a1c6b463 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4095,9 +4095,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.119" +version = "1.0.120" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8eddb61f0697cc3989c5d64b452f5488e2b8a60fd7d5076a3045076ffef8cb0" +checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" dependencies = [ "itoa", "ryu", diff --git a/Cargo.toml b/Cargo.toml index 148f1592ad..5958d5a4bf 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -99,7 +99,7 @@ scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" serde = { version = "1.0.204", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.119", default-features = false } +serde_json = { version = "1.0.120", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.61" tokio = { version = "1.38", default-features = false } From 1fe35ddc0ce27f1090c3bcb608cb3ec534f2099d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:47:44 +0100 Subject: [PATCH 069/137] build(deps): bump clap from 4.5.8 to 4.5.9 (#1678) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.8 to 4.5.9. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.8...v4.5.9) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 10 +++++----- Cargo.toml | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e6a1c6b463..a90d8efd3a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -869,9 +869,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.8" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84b3edb18336f4df585bc9aa31dd99c036dfa5dc5e9a2939a722a188f3a8970d" +checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" dependencies = [ "clap_builder", "clap_derive", @@ -879,9 +879,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.8" +version = "4.5.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1c09dd5ada6c6c78075d6fd0da3f90d8080651e2d6cc8eb2f1aaa4034ced708" +checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" dependencies = [ "anstream", "anstyle", @@ -4883,7 +4883,7 @@ dependencies = [ name = "subxt-cli" version = "0.37.0" dependencies = [ - "clap 4.5.8", + "clap 4.5.9", "color-eyre", "frame-metadata 16.0.0", "heck 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index 5958d5a4bf..54f5796dd2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -67,7 +67,7 @@ assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } blake2 = { version = "0.10.6", default-features = false } -clap = { version = "4.5.8", features = ["derive", "cargo"] } +clap = { version = "4.5.9", features = ["derive", "cargo"] } cfg-if = "1.0.0" criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } From 9e4f7680c0665c702bb31c1e828b94a9d551b614 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:47:54 +0100 Subject: [PATCH 070/137] build(deps): bump thiserror from 1.0.61 to 1.0.62 (#1680) Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.61 to 1.0.62. - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.61...1.0.62) --- updated-dependencies: - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a90d8efd3a..f95a58cbe4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5127,18 +5127,18 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709" +checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.61" +version = "1.0.62" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533" +checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 54f5796dd2..5c62d1542b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -101,7 +101,7 @@ scale-typegen-description = "0.8.0" serde = { version = "1.0.204", default-features = false, features = ["derive"] } serde_json = { version = "1.0.120", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } -thiserror = "1.0.61" +thiserror = "1.0.62" tokio = { version = "1.38", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" From 7bccf564b81b644cb55bd337b5d5be4805212ff7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:48:03 +0100 Subject: [PATCH 071/137] build(deps): bump darling from 0.20.9 to 0.20.10 (#1679) Bumps [darling](https://github.com/TedDriggs/darling) from 0.20.9 to 0.20.10. - [Release notes](https://github.com/TedDriggs/darling/releases) - [Changelog](https://github.com/TedDriggs/darling/blob/master/CHANGELOG.md) - [Commits](https://github.com/TedDriggs/darling/commits/v0.20.10) --- updated-dependencies: - dependency-name: darling dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 20 ++++++++++---------- Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f95a58cbe4..01429a185d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1227,12 +1227,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83b2eb4d90d12bdda5ed17de686c2acb4c57914f8f921b8da7e112b5a36f3fe1" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.9", - "darling_macro 0.20.9", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -1251,9 +1251,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622687fe0bac72a04e5599029151f5796111b90f1baaa9b544d807a5e31cd120" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", @@ -1276,11 +1276,11 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.9" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733cabb43482b1a1b53eee8583c2b9e8684d592215ea83efd305dd31bc2f0178" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.9", + "darling_core 0.20.10", "quote", "syn 2.0.60", ] @@ -4990,7 +4990,7 @@ dependencies = [ name = "subxt-macro" version = "0.37.0" dependencies = [ - "darling 0.20.9", + "darling 0.20.10", "parity-scale-codec", "proc-macro-error", "quote", diff --git a/Cargo.toml b/Cargo.toml index 5c62d1542b..28dcd84faa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,7 +73,7 @@ criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } color-eyre = "0.6.3" console_error_panic_hook = "0.1.7" -darling = "0.20.9" +darling = "0.20.10" derive-where = "1.2.7" either = { version = "1.13.0", default-features = false } frame-metadata = { version = "16.0.0", default-features = false } From f359119da26aa427ee8b3bfa5fd41d9b580eade0 Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 09:48:50 +0100 Subject: [PATCH 072/137] Update Artifacts (auto-generated) (#1681) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> --- artifacts/demo_chain_specs/polkadot.json | 8 ++++---- artifacts/polkadot_metadata_full.scale | Bin 418704 -> 418704 bytes artifacts/polkadot_metadata_small.scale | Bin 101812 -> 101812 bytes 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index ec0f5bd967..f2c189ebfb 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x04562b123ef7d91762ee4094c7ba1e44201b635de54619b10aa9100459698ae20df4bd480101b327171100000000133117110000000004db761b0a4b92132e0fc3d37e1c2b2a6ec7e6908e79ea4becb8e9a12ea9906aab50c74801011331171100000000733a1711000000000429c989fd4a3853d01692f9920d1a0c1ad29e386927ec6b87c05fb7e6d255bfeba9d0480101733a171100000000d34317110000000000000c29c989fd4a3853d01692f9920d1a0c1ad29e386927ec6b87c05fb7e6d255bfeba9d04801013d23000000000000733a1711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b715901000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e03010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b24010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000081b0b2be787b16ce685b01ce226d2d9b31379d291c337c400f11c254368660a01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e49200601000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb2014010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e6701000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a010000000000000054acbf68ddc9a0b4fd60f05e64f4abc65d8d350b58a1619e6b262b6eb1923e3c0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e28c8f1902cdad2ff464571be0d5c7165072837901689d7bca649aa0b3bbb136010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e0100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000caba78186f6df5691a3e2401522e67b95798461f099c209115b12d1fd089ec050100000000000000040000000000000002562b123ef7d91762ee4094c7ba1e44201b635de54619b10aa9100459698ae20df4bd4801013b23000000000000b3271711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b715901000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e03010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000c4614886b937ae2ce556a34454c24d8f94a85ee96b3939aae53ce9ff6651bd470100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b24010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000081b0b2be787b16ce685b01ce226d2d9b31379d291c337c400f11c254368660a01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e49200601000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb2014010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e6701000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a010000000000000054acbf68ddc9a0b4fd60f05e64f4abc65d8d350b58a1619e6b262b6eb1923e3c0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e28c8f1902cdad2ff464571be0d5c7165072837901689d7bca649aa0b3bbb136010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e0100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000006a4880f724fdc88ebe9606f1e09bf7e5ad81167022212913540d2865212e651e0100000000000000040000000000000002db761b0a4b92132e0fc3d37e1c2b2a6ec7e6908e79ea4becb8e9a12ea9906aab50c74801013c2300000000000013311711000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e0100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd21820701000000000000004ea4871b3ccdd1276ee604eb0e06aa4a62536dfe8fb053042a8f36caddb94c510100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b715901000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e03010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000be18787b5177e58664cd893fdaa20a3ca1bc9f1acbbb15036b046ae49c17c15b01000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d0100000000000000e2b60ca56ef300d729ca5b4d5366df9fb9c992ac254c5c477599f795746d730201000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a010000000000000092c983ba8716f18073d703e7c8556e65e2565ec377f0f9a587d7aa8b5ec4d85001000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d0100000000000000c4614886b937ae2ce556a34454c24d8f94a85ee96b3939aae53ce9ff6651bd470100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c0100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d0100000000000000566779977b35c81ab477958e39cc697ffce60fe1aa31f8121da08329b25f4e05010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b24010000000000000036e0fea00df2b5f388836cb63e59a991c4498cff9d2b33f135fe8ced66abae100100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000081b0b2be787b16ce685b01ce226d2d9b31379d291c337c400f11c254368660a01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e49200601000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d0100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b730100000000000000522ac8207ac3c869ca31085f31a5d26da4362597650fe91048665e868724522e0100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b776301000000000000009c5d3bb1387f53f0306bf7f24e81dafa5bf972048de867e2e517938c4ebdf7120100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f0100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb2014010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e6701000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000d00d2a5b40588ad87345f53138b854c7ce513f29c7f72dc5f2b7de6662e092150100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a010000000000000054acbf68ddc9a0b4fd60f05e64f4abc65d8d350b58a1619e6b262b6eb1923e3c0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd98431769260100000000000000e28c8f1902cdad2ff464571be0d5c7165072837901689d7bca649aa0b3bbb136010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e0100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000aa5692a0d8aa0022cd3aa829d6aa075b83053a20af9edd29e006f727e2036e6e0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5380030, - "finalizedBlockHeader": "0x580459d191fa3a77d79c2ce617228669b6474c7bd24602c8ab7a306b7ae3421da6492305316a3649c5b8c0d2d2d7faa561c4073ed05bed2837eb8df0d196dd5965b624344b6f04904adb2c7ec798fb6678c6403a4fa1d2f3eb6aedd34ee9142fdbff5daa0c0642414245b5010100000000d4321711000000009c816e4d9eca93046e9fd600ceb56948e01048bf18dc4bb138c6dddd40243d7ddf6c6bc78880a8cf729f7ec5ad24abd4a7b49507bf88c912949d2a1f2acc8c0fd70382377899831ef3601d2e60be320cbb972c723e6f91e7fb94e92298aea00704424545468403dd65a5f265c9dc01f980964507b2d95b741d03ed5b120a593c34636157a696c405424142450101f23bf7d425333e2d2187f659011f00be42aa6b4b842d9f0e38b10807359cf93334fa4f7f3007142bceeae4b309c5e24cdd80fe70a8380d8f86829c55a992dc8b", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000b1c91fbb1f574b1ab4e69685a0b5bbf1368c488e9b5e93766b05141be765456901000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000907fc1295e137738f8862d34490ad0746b80926e236e05ef8b958084f1d91a850100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000001b68f8281e8ed7d7486a83f77342de99ec9985bbe4ebebccc78a56375509b4580100000000000000f92d39f102331311ae6a4d051643cf10bd1490a5b00afaa4edc7d5d6af90f78b01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000008697140891a850c059747ecf501b0b746c682be9e305a4df6eb886a6559433d010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da81010000000000000010a50acde267a82fe4ce8bd482edfde9d63edee111511b56ff4c4c28f57046fa01000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec00100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000007a99eb5f9dd892ab541176abfcb3a9b87e184c9f5737f0c1e69b90f62c522aef0100000000000000dccafad8bba5affbc80095564afc9376881907073a060979fabbb962bef08d56010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000001a29efe6c120445dd714915875399d25ecc85451993fcecc445618e016d05e7e01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f8101000000000000000074497472b01dc3a0c379b9622ca2579b14b0ae540e10ad655afdbf8bb1d2490100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b01000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b0100000000000000700f01e62a9c97bb86cb5bbb57ac20c74af3695fcef14ebea1f133d3a9253cc701000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000cf36d693d43a42806084b06843128d50d6655f001dd6f027ac69c3b825bdd42701000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd01000000000000005566b715a9b242296b7580227095f267f07c33d5a6e9a878010bb6971bf1ff1e010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000d50555d709e293864d91ca77494a0424d842151c92d74f8ee08b52d65d11cddb0100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000624c81575707fc5f918acc054bc80abafbcf42bd78750054c8d9e1c2e69f173f0100000000000000293ec1101d6cc9df89a04ede0ac8ced7418803cc1d52a36ca8e45cca734388f90100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a1900100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003db5f801c2e208df9a9b55c5f2d459ee2c3dc9fb94e208695f2ee4025f4bed4f0100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000016b36c754ae6e651c5c6342f5f9bce5299f4dee1111345883addc0b3e2329f18010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b0100000000000000f5ed118038230c29a138443aa6772e24aad7567226d6dd98e5596856a98166c90100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae0100000000000000067d38381d74d8575dcffc6e3340bc47241ef2ea177f66ed738a417ab1dd459301000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef390100000000000000c180ac4896d030d199247131f3aca75e70e2319e279d6d63cbaa6bc91bc6da4b01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000876ba7dafdef35f262f8903495b7ac6276c592665e5a3ecd28b9da29c1f0b8510100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe30d30ace5295db295a2e6592e7990ddeaa9f1a07abded61bcce0b6392626080100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d010000000000000043f0c689c19f75362242c2412fb65e09598d58b8b005f5044dfba06d463e6f8c0100000000000000ab1995aa88c7dc9c7a1590e78ffcbaaba885e7230109206d368471b88f89f7670100000000000000fb267d8f26a35c34d58b4dc0633cf56f5eb6882ec873270dfbb0e55c64404dc101000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000001de97cc443740a0e0e0fdf166ef4515c387fec450fc4d4e141cebb41e1b7f8e90100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf701586001000000000000000c3e4afee23a9fa0f291d0789dd41b4c0bcadf40b12e7ec3be5532dd1e7709da01000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d060100000000000000c9c3952008fa118083591bd0647a97b3f3f531b5ccc10d21430724a4d6bba7230100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f220100000000000000209c0f330630b87e16ebf9a9865bd2ec9258d0366176e0cbeec9bd688162025e0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000bdee8597e248688fddc627ad9c95cbebf7d3b5f248b9a742aa2d8e761fa365050100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb09009501000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac965901000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b3850100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb0100000000000000b04763d321fbfbf0b7c0ee6bb824158c09a120e7bac2d04fd26783d1768ff4af01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003b8488c862db2c807e131808dd79bb7f2c8297320f132efe1cb25ac5c84739bb01000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb01000000000000003af2616b6372dd7ee436589f2c9bcc7a8efdecbb40a92574b93f207b6806ba560100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c010000000000000000ee1fc07e5a1fb79caae4187100b34b664bae76f42b552cbe8c96bfe6eca844010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c70100000000000000367e8b4f569ccc588698343dea3e0666c7d77295a6e14c27bbd501f8261fb9ff01000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a40100000000000000e25d7eaacb625bd47c64f4d8a745718a0034000443167715e8709a1b6227cf1b01000000000000002dd8b91790e7023f68c52021f40fe08a5769eb7e3f3a6f6c8a54454012a5497401000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c90066528010000000000000097485aff1573c42971da2d363dd00e29dd61c8e285d100ace0347bfdb6b5981701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000002c08000000000000000169d2480100b12000000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd4801" + "babeEpochChanges": "0x04afef58199f6859f4b44c16c209859e0480f3e635221bfb509450cb741de4f457c4454a010173b1181100000000d3ba181100000000044c4d516b81743339212db90ac61f1a1f02710ad08b0d5c332e94ad952590b7a4194f4a0101d3ba18110000000033c4181100000000042b2b11fdac2a5c9a070c7e082c9523cfcc49c9b4bb75601d070559472084cafc65584a010133c418110000000093cd18110000000000000c2b2b11fdac2a5c9a070c7e082c9523cfcc49c9b4bb75601d070559472084cafc65584a0101672300000000000033c41811000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000003e411795cae1f9e9b9867293a7101aa6bf0a5b0539c3071ef1ab18a8944af31401000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000a8f63bf6df53880e6e3a3ea02ad836bada917204633653c7f411af4ce9eff30e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f01000000000000001afcbbede5abaa7d5482114d0a397de7b6129485513664782ff6ca92a129e20c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f010000000000000004a3d449da9c2c02c963df1433b66d0b6599e7a667e3818ecebe84357081703b0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d570100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb0501000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad210201000000000000008cb6cde120dd30eb4558ca02e386c43fe94e1dbf1c19fe224b9ac5f7f59ae6550100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000a08e709b493caaf8f790afa58a2ff9e7c4547fd6baa085180d59f107e4d3075301000000000000000400000000000000024c4d516b81743339212db90ac61f1a1f02710ad08b0d5c332e94ad952590b7a4194f4a01016623000000000000d3ba1811000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000003e411795cae1f9e9b9867293a7101aa6bf0a5b0539c3071ef1ab18a8944af31401000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000a8f63bf6df53880e6e3a3ea02ad836bada917204633653c7f411af4ce9eff30e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f01000000000000001afcbbede5abaa7d5482114d0a397de7b6129485513664782ff6ca92a129e20c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f010000000000000004a3d449da9c2c02c963df1433b66d0b6599e7a667e3818ecebe84357081703b0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d570100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb0501000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad210201000000000000008cb6cde120dd30eb4558ca02e386c43fe94e1dbf1c19fe224b9ac5f7f59ae6550100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000a63407206b460bf5c468e213e2c2aa9d798d92037fa7bd3bde1bf1ca01bd08ff0100000000000000040000000000000002afef58199f6859f4b44c16c209859e0480f3e635221bfb509450cb741de4f457c4454a0101652300000000000073b11811000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000003e411795cae1f9e9b9867293a7101aa6bf0a5b0539c3071ef1ab18a8944af31401000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000a8f63bf6df53880e6e3a3ea02ad836bada917204633653c7f411af4ce9eff30e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f01000000000000001afcbbede5abaa7d5482114d0a397de7b6129485513664782ff6ca92a129e20c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f010000000000000004a3d449da9c2c02c963df1433b66d0b6599e7a667e3818ecebe84357081703b0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d570100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb0501000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad210201000000000000008cb6cde120dd30eb4558ca02e386c43fe94e1dbf1c19fe224b9ac5f7f59ae6550100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000ffd178f97d31719befd52582ed3c9860fa1dc066dbf7803439b2953b930ebaa40100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5405093, + "finalizedBlockHeader": "0x0ca9e911429c1513a26194d136fead450c974e0983050caf1a2a8771e21a6c5ea668290559f9c5af5bc40b7e0840dfff4b6bcd72cb9ff8066327e9a0fda4f5216cb1ad104db06ce5ff53bc9bb1ea8fe6f796d610c22aa8ce80e37119b62d044ecb0accbd0c0642414245b50103fd00000099bc181100000000723e4213df7eb9aaa27e4f0f895811f51c4d13dcd4fb2a85df3407736dcd5619c3f28a709f6c7eab4e3ea795dfc4c610d1924295c3c624c85b8fdd133b6ba00a0babb28469b3436bf7513bc9deb42c7a750da47a3abc5882399bd027b9a2970e0442454546840351db2a05c8cfd1fd820a0ad2b55bc3c6fa408d9a8ea7ae90add20da492efc88905424142450101760c1e2b7e6dd4913687a9a8eff0d245b510823c80078bad523d14a49441fe3e4e0e380d2d7834bad4f66153f63bed96fe6fc26a36b95353406af66674bc4382", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e01000000000000001c28c9994bc2a6434679ebd9e2d29f49d2dc1b0a9989eb144d3ab500875b1d070100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f420100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec8010000000000000057c55b2bbb6b86d6e9aedef9b51904ec5b29d8c1271308aa625fa44553273832010000000000000005f2a5fa89d67c11407b3cde00fb2b4482a40459800e16fa108f209456dcba4401000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b892220100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000008697140891a850c059747ecf501b0b746c682be9e305a4df6eb886a6559433d010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000065dc7fefab39364b5669a360cfd3576a24742b82c646f97d0fc49386de6e0a410100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec00100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000004f921e651aac48305df584f38608e4cd23bb3ddadc66045f1bd2aa91022434610100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000bd7acc9ffa9ec1eed06acaf6a0f4f48ff10f83681b19e55ebc4c3a969df2e2ce0100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd5010000000000000059e1632ee9e89f2f3e9639752821767c15fe25db7fa0c5f475d732c59a0a645001000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000099f574f1c57e766376a6976ceb3f44ea0420be7426d5c55b016a91e34091a0980100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000cf36d693d43a42806084b06843128d50d6655f001dd6f027ac69c3b825bdd4270100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000d50555d709e293864d91ca77494a0424d842151c92d74f8ee08b52d65d11cddb0100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c010000000000000057d83f69e89e4bbf5eef5021024f3e5810f2312a37d191750ad3360b3146dc2201000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda20100000000000000f3300017c9cadc38d61b118edd05c0540768521f88c5092215e47a9d0403fc7a01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a1900100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000016b36c754ae6e651c5c6342f5f9bce5299f4dee1111345883addc0b3e2329f18010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f270100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed010000000000000044715c3a912a898d9719750da1ab8dee74bad9256cc4f3922b53d2ee964acd200100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef390100000000000000c180ac4896d030d199247131f3aca75e70e2319e279d6d63cbaa6bc91bc6da4b01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd010000000000000051f30c189018e3ea45d60393bfd4e7e690bae78908458616537a362329a4309c0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e0100000000000000798d28848cf6e642e3148e0a250ab346b5f21a81d5496141318ff57b5766f46801000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000696995b5fba21bf88e5cbefa8b9819262540c4f39e7dd4806246318b5a369c230100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000ab1995aa88c7dc9c7a1590e78ffcbaaba885e7230109206d368471b88f89f76701000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000fbd06da169daa41936401cd54d06ecb61cf722e3e1d34a9ac048d0c800014d5f0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa064901000000000000008118d80425d3b1fb332be3b1d02e6456b8ff7fa7414ef940c36c1e8e3262766b0100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000009b441bc4e5e4674cde59464cfcedd490af143f22ed8bf85395c919af9da608a50100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf701586001000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d060100000000000000c9c3952008fa118083591bd0647a97b3f3f531b5ccc10d21430724a4d6bba7230100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab401000000000000006932c28b248d36d9b3fec965a75b6e0ee0e10a7835eb874aa52ba747c492d05d0100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c6010000000000000037cf0e2296974765b587766e6f36c0b98f69c1698d0af2f8c3490841509ccedb0100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac96590100000000000000e793c0578be40676ea7aafc611a54c214f6694253ade9652a3f1364823042d6e01000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a601000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e01000000000000003a0f6b52761b6ae53f5ff7bb3483a5021c5d09c3ae2de350f1e30aba8a5d6f0f0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f36359092840010000000000000045f84b0909eb669ce3d2099a935e269d6ebb091f1f8055fbfcf07d6efe7f43ab01000000000000004f7d68f733bb0699f0a1d85f331e073ebec15f6663c17179753f7f38abf3331701000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe701000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000e12f2b7cb74e1af470eb75f366ab1942e1daa3d84b812d2614b1fbcce156e5c001000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef501000000000000005c0ce76a2fbef3a0df89ae8c2bedac4e288c3679c33701980624c9ffcca9103b0100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b3850100000000000000d4c8bb768da36c14fb8dca7cbfad9334c2cded80354a7e796b2ec006a225e3a80100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000025902a5eea68f7b0d1852f3292c8464f44aa9ad35e62b29fea99c172c8ec00e3010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000604bd281d8ffb6bd4fdf1c7c776a99a2d62c2b9730d7d86530903085d765c883010000000000000000ee1fc07e5a1fb79caae4187100b34b664bae76f42b552cbe8c96bfe6eca844010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d30100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000280084dd48c4c3ebf743e3a8448e2815fcf183dfd0121c19453278da053c20a3010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a40100000000000000a4f4bbd302c06389ee3614c0943af03d52364f172ef05021aa93d12aef53c3290100000000000000e25d7eaacb625bd47c64f4d8a745718a0034000443167715e8709a1b6227cf1b01000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006d698963e0fa3c04ef2b32f638e0176e053cd021f6a49b55a4a4ebd4d5fbb11701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e5518010000000000000036080000000000000001295a4a0100d92000000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a01" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index 6e586e9649cad3e7a68b3295bc99ab3b150bc692..f5a72a678728be9913fba38a524c23574bf3a9e8 100644 GIT binary patch delta 30 mcmbPmTyny3$%Yoj7N!>FEi6KRm_Agri~M2PF7k)9CLI94nhb3K delta 30 mcmbPmTyny3$%Yoj7N!>FEi6KRm^ez?MgFjC7x}|llMVp2nG1pd diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 4671016e59d3632ab1856327c4eb52e73692e023..50e1e7d73f9d3098d6445c81b97696dd0d44db49 100644 GIT binary patch delta 20 ccmdlon{CT%wuUW?ul1QeRBV5%&v-l*0Aig9TmS$7 delta 20 ccmdlon{CT%wuUW?ul1QYO1Hn&XFMJY09!~1aR2}S From fa091c7bcf7d8fa9142c652e2d51790ac7528260 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:17:10 +0300 Subject: [PATCH 073/137] build(deps): bump bip32 from 0.5.1 to 0.5.2 (#1686) Bumps [bip32](https://github.com/iqlusioninc/crates) from 0.5.1 to 0.5.2. - [Commits](https://github.com/iqlusioninc/crates/compare/bip32/v0.5.1...secrecy/v0.5.2) --- updated-dependencies: - dependency-name: bip32 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 01429a185d..4fc3e44c29 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -571,9 +571,9 @@ dependencies = [ [[package]] name = "bip32" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e141fb0f8be1c7b45887af94c88b182472b57c96b56773250ae00cd6a14a164" +checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" dependencies = [ "bs58", "hmac 0.12.1", diff --git a/Cargo.toml b/Cargo.toml index 28dcd84faa..408284a8f9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -152,7 +152,7 @@ substrate-runner = { path = "testing/substrate-runner" } # subxt-signer deps that I expect aren't useful anywhere else: bip39 = { version = "2.0.0", default-features = false } -bip32 = { version = "0.5.1", default-features = false } +bip32 = { version = "0.5.2", default-features = false } hmac = { version = "0.12.1", default-features = false } pbkdf2 = { version = "0.12.2", default-features = false } schnorrkel = { version = "0.11.4", default-features = false } From e1cafbf4f6a6e3d8524507d80bf42dc2463356c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:34:21 +0300 Subject: [PATCH 074/137] build(deps): bump thiserror from 1.0.62 to 1.0.63 (#1684) Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.62 to 1.0.63. - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.62...1.0.63) --- updated-dependencies: - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4fc3e44c29..ba9a63ba50 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5127,18 +5127,18 @@ checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9" [[package]] name = "thiserror" -version = "1.0.62" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2675633b1499176c2dff06b0856a27976a8f9d436737b4cf4f312d4d91d8bbb" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.62" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d20468752b09f49e909e55a5d338caa8bedf615594e9d80bc4c565d30faf798c" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 408284a8f9..fe843de5c9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -101,7 +101,7 @@ scale-typegen-description = "0.8.0" serde = { version = "1.0.204", default-features = false, features = ["derive"] } serde_json = { version = "1.0.120", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } -thiserror = "1.0.62" +thiserror = "1.0.63" tokio = { version = "1.38", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" From 79afa1f14e6ee2cde09fc7e2b16d5dfa4bfb2ff4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:34:31 +0300 Subject: [PATCH 075/137] build(deps): bump tokio from 1.38.0 to 1.38.1 (#1685) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.38.0 to 1.38.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.38.0...tokio-1.38.1) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ba9a63ba50..2a32e43f40 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5191,9 +5191,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.0" +version = "1.38.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a" +checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" dependencies = [ "backtrace", "bytes", From ada8e17b89c9632fbb9857f421d941511aeb01ca Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 13:54:20 +0100 Subject: [PATCH 076/137] Update Artifacts (auto-generated) (#1687) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> Co-authored-by: James Wilson --- artifacts/demo_chain_specs/polkadot.json | 8 ++++---- artifacts/polkadot_metadata_full.scale | Bin 418704 -> 418702 bytes artifacts/polkadot_metadata_small.scale | Bin 101812 -> 101810 bytes artifacts/polkadot_metadata_tiny.scale | Bin 69426 -> 69424 bytes 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index f2c189ebfb..046a81c21f 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x04afef58199f6859f4b44c16c209859e0480f3e635221bfb509450cb741de4f457c4454a010173b1181100000000d3ba181100000000044c4d516b81743339212db90ac61f1a1f02710ad08b0d5c332e94ad952590b7a4194f4a0101d3ba18110000000033c4181100000000042b2b11fdac2a5c9a070c7e082c9523cfcc49c9b4bb75601d070559472084cafc65584a010133c418110000000093cd18110000000000000c2b2b11fdac2a5c9a070c7e082c9523cfcc49c9b4bb75601d070559472084cafc65584a0101672300000000000033c41811000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000003e411795cae1f9e9b9867293a7101aa6bf0a5b0539c3071ef1ab18a8944af31401000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000a8f63bf6df53880e6e3a3ea02ad836bada917204633653c7f411af4ce9eff30e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f01000000000000001afcbbede5abaa7d5482114d0a397de7b6129485513664782ff6ca92a129e20c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f010000000000000004a3d449da9c2c02c963df1433b66d0b6599e7a667e3818ecebe84357081703b0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d570100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb0501000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad210201000000000000008cb6cde120dd30eb4558ca02e386c43fe94e1dbf1c19fe224b9ac5f7f59ae6550100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000a08e709b493caaf8f790afa58a2ff9e7c4547fd6baa085180d59f107e4d3075301000000000000000400000000000000024c4d516b81743339212db90ac61f1a1f02710ad08b0d5c332e94ad952590b7a4194f4a01016623000000000000d3ba1811000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000003e411795cae1f9e9b9867293a7101aa6bf0a5b0539c3071ef1ab18a8944af31401000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000a8f63bf6df53880e6e3a3ea02ad836bada917204633653c7f411af4ce9eff30e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f01000000000000001afcbbede5abaa7d5482114d0a397de7b6129485513664782ff6ca92a129e20c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f010000000000000004a3d449da9c2c02c963df1433b66d0b6599e7a667e3818ecebe84357081703b0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d570100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb0501000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad210201000000000000008cb6cde120dd30eb4558ca02e386c43fe94e1dbf1c19fe224b9ac5f7f59ae6550100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000a63407206b460bf5c468e213e2c2aa9d798d92037fa7bd3bde1bf1ca01bd08ff0100000000000000040000000000000002afef58199f6859f4b44c16c209859e0480f3e635221bfb509450cb741de4f457c4454a0101652300000000000073b11811000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f0100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da72201000000000000001aa966eb3661f9cbe18ee3750a9d86c88e83cab11435bb3a1408fee18b4c56340100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000d6152835cb59040a40a5a4ee3a4d481937b7ee9d4a5649abeac6c535d9e177080100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000c877e12bb2f58391a1ac3b83fd5935f06626a075510bbdbbd9b90dab3d66c67e010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000003e411795cae1f9e9b9867293a7101aa6bf0a5b0539c3071ef1ab18a8944af31401000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000907ff7ac1e6c451d236c05c8d3f85640d9f9472d6a30115fc26135dae020e63801000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f4901000000000000008a9561dbc7baf9b183b8e6177f1aa5eafd99049aec253883cd1617a2c34bd56b010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f61001000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b0100000000000000489e729ecf8fb33eb211870b1c00e84da843cbead0ed95691135ff66861e852a010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000a8f63bf6df53880e6e3a3ea02ad836bada917204633653c7f411af4ce9eff30e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e01000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000a225f176e678ed4b8beb4bc15d4e7e4f56bf01e3186bf830bb30d378a2f8f73f0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf321070100000000000000a4c7c3775274e15a35b002cde256ba1a8c8e1b4f2e5de351b633b40e42f3711501000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f01000000000000001afcbbede5abaa7d5482114d0a397de7b6129485513664782ff6ca92a129e20c010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f010000000000000004a3d449da9c2c02c963df1433b66d0b6599e7a667e3818ecebe84357081703b0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d570100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a85401000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000300e83228ad8dd39853b6ffad85290d909b1ef1ec4067f631be5da6432aebb0501000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad210201000000000000008cb6cde120dd30eb4558ca02e386c43fe94e1dbf1c19fe224b9ac5f7f59ae6550100000000000000ec09846a303cae7bbb33f9030065890461a422a138ca0a85a5375b05de468f3f0100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c4601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f01000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b05301000000000000007e0da5500e4e91faec6b7c3763c52058a7a9350be3009f2fe00a8e3bf0c59e790100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000ffd178f97d31719befd52582ed3c9860fa1dc066dbf7803439b2953b930ebaa40100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5405093, - "finalizedBlockHeader": "0x0ca9e911429c1513a26194d136fead450c974e0983050caf1a2a8771e21a6c5ea668290559f9c5af5bc40b7e0840dfff4b6bcd72cb9ff8066327e9a0fda4f5216cb1ad104db06ce5ff53bc9bb1ea8fe6f796d610c22aa8ce80e37119b62d044ecb0accbd0c0642414245b50103fd00000099bc181100000000723e4213df7eb9aaa27e4f0f895811f51c4d13dcd4fb2a85df3407736dcd5619c3f28a709f6c7eab4e3ea795dfc4c610d1924295c3c624c85b8fdd133b6ba00a0babb28469b3436bf7513bc9deb42c7a750da47a3abc5882399bd027b9a2970e0442454546840351db2a05c8cfd1fd820a0ad2b55bc3c6fa408d9a8ea7ae90add20da492efc88905424142450101760c1e2b7e6dd4913687a9a8eff0d245b510823c80078bad523d14a49441fe3e4e0e380d2d7834bad4f66153f63bed96fe6fc26a36b95353406af66674bc4382", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e01000000000000001c28c9994bc2a6434679ebd9e2d29f49d2dc1b0a9989eb144d3ab500875b1d070100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f420100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec8010000000000000057c55b2bbb6b86d6e9aedef9b51904ec5b29d8c1271308aa625fa44553273832010000000000000005f2a5fa89d67c11407b3cde00fb2b4482a40459800e16fa108f209456dcba4401000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b892220100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000008697140891a850c059747ecf501b0b746c682be9e305a4df6eb886a6559433d010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000065dc7fefab39364b5669a360cfd3576a24742b82c646f97d0fc49386de6e0a410100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec00100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000004f921e651aac48305df584f38608e4cd23bb3ddadc66045f1bd2aa91022434610100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000bd7acc9ffa9ec1eed06acaf6a0f4f48ff10f83681b19e55ebc4c3a969df2e2ce0100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd5010000000000000059e1632ee9e89f2f3e9639752821767c15fe25db7fa0c5f475d732c59a0a645001000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000099f574f1c57e766376a6976ceb3f44ea0420be7426d5c55b016a91e34091a0980100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000cf36d693d43a42806084b06843128d50d6655f001dd6f027ac69c3b825bdd4270100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000d50555d709e293864d91ca77494a0424d842151c92d74f8ee08b52d65d11cddb0100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c010000000000000057d83f69e89e4bbf5eef5021024f3e5810f2312a37d191750ad3360b3146dc2201000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda20100000000000000f3300017c9cadc38d61b118edd05c0540768521f88c5092215e47a9d0403fc7a01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000d34560b879f8f4dd8d2fbd4f6d51b9b6f41b76656860646fcef4e1498859a1900100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000016b36c754ae6e651c5c6342f5f9bce5299f4dee1111345883addc0b3e2329f18010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f270100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed010000000000000044715c3a912a898d9719750da1ab8dee74bad9256cc4f3922b53d2ee964acd200100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef390100000000000000c180ac4896d030d199247131f3aca75e70e2319e279d6d63cbaa6bc91bc6da4b01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd010000000000000051f30c189018e3ea45d60393bfd4e7e690bae78908458616537a362329a4309c0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e0100000000000000798d28848cf6e642e3148e0a250ab346b5f21a81d5496141318ff57b5766f46801000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000696995b5fba21bf88e5cbefa8b9819262540c4f39e7dd4806246318b5a369c230100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000ab1995aa88c7dc9c7a1590e78ffcbaaba885e7230109206d368471b88f89f76701000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000fbd06da169daa41936401cd54d06ecb61cf722e3e1d34a9ac048d0c800014d5f0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa064901000000000000008118d80425d3b1fb332be3b1d02e6456b8ff7fa7414ef940c36c1e8e3262766b0100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000009b441bc4e5e4674cde59464cfcedd490af143f22ed8bf85395c919af9da608a50100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf701586001000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d060100000000000000c9c3952008fa118083591bd0647a97b3f3f531b5ccc10d21430724a4d6bba7230100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab401000000000000006932c28b248d36d9b3fec965a75b6e0ee0e10a7835eb874aa52ba747c492d05d0100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c6010000000000000037cf0e2296974765b587766e6f36c0b98f69c1698d0af2f8c3490841509ccedb0100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac96590100000000000000e793c0578be40676ea7aafc611a54c214f6694253ade9652a3f1364823042d6e01000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a601000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e01000000000000003a0f6b52761b6ae53f5ff7bb3483a5021c5d09c3ae2de350f1e30aba8a5d6f0f0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f36359092840010000000000000045f84b0909eb669ce3d2099a935e269d6ebb091f1f8055fbfcf07d6efe7f43ab01000000000000004f7d68f733bb0699f0a1d85f331e073ebec15f6663c17179753f7f38abf3331701000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe701000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000e12f2b7cb74e1af470eb75f366ab1942e1daa3d84b812d2614b1fbcce156e5c001000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef501000000000000005c0ce76a2fbef3a0df89ae8c2bedac4e288c3679c33701980624c9ffcca9103b0100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b3850100000000000000d4c8bb768da36c14fb8dca7cbfad9334c2cded80354a7e796b2ec006a225e3a80100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000025902a5eea68f7b0d1852f3292c8464f44aa9ad35e62b29fea99c172c8ec00e3010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000604bd281d8ffb6bd4fdf1c7c776a99a2d62c2b9730d7d86530903085d765c883010000000000000000ee1fc07e5a1fb79caae4187100b34b664bae76f42b552cbe8c96bfe6eca844010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d30100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000280084dd48c4c3ebf743e3a8448e2815fcf183dfd0121c19453278da053c20a3010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a40100000000000000a4f4bbd302c06389ee3614c0943af03d52364f172ef05021aa93d12aef53c3290100000000000000e25d7eaacb625bd47c64f4d8a745718a0034000443167715e8709a1b6227cf1b01000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006d698963e0fa3c04ef2b32f638e0176e053cd021f6a49b55a4a4ebd4d5fbb11701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e5518010000000000000036080000000000000001295a4a0100d92000000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a01" + "babeEpochChanges": "0x04184b8097a768777db9b7fd5ba2a3b51f30911ee4db30bd7df8d3a569a69f01bcdfcc4b0101333b1a110000000093441a1100000000044d56dc8601c76363dcc22c01c4b6cb27068d7ffcbb37b4454b19edde9bef9e903ad64b010193441a1100000000f34d1a1100000000044a8984790b4ece325bb83f3d4276bfc1cd8a4a4caf5c7addb1130687edd781778edf4b0101f34d1a110000000053571a110000000000000c184b8097a768777db9b7fd5ba2a3b51f30911ee4db30bd7df8d3a569a69f01bcdfcc4b01018f23000000000000333b1a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b7159010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000b6f842e2acd710f5ebcef09a9cd5ba87752fe04edccc593b9696213753b986440100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b8688749010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000aa222d924478223f49354af931048bb7b49311b9234551c0b551b830f93ab0580100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec29817010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef7701000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000d7284920e97c8e1c9df4184b5c4a68f46fda1b4e658d70af593e7e12b0855d2101000000000000000400000000000000024a8984790b4ece325bb83f3d4276bfc1cd8a4a4caf5c7addb1130687edd781778edf4b01019123000000000000f34d1a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b7159010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000b6f842e2acd710f5ebcef09a9cd5ba87752fe04edccc593b9696213753b986440100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b8688749010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000aa222d924478223f49354af931048bb7b49311b9234551c0b551b830f93ab0580100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec29817010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef7701000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000842ecffaca85dccf1514fb105e15817a69e1b72673da0e6fd707a8cba004fc9701000000000000000400000000000000024d56dc8601c76363dcc22c01c4b6cb27068d7ffcbb37b4454b19edde9bef9e903ad64b0101902300000000000093441a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b7159010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000b6f842e2acd710f5ebcef09a9cd5ba87752fe04edccc593b9696213753b986440100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b8688749010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000aa222d924478223f49354af931048bb7b49311b9234551c0b551b830f93ab0580100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec29817010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef7701000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000e9a9c135387c16fd32410cdaa2e7e3a0d748c94e9bbb0aa923951fc8bb4f39a00100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5430151, + "finalizedBlockHeader": "0xfa186aad11702ce4c99d80e4afb99615b98f642b946856553c1af9bc6e52c81e2e852f0534f94b8f338160d76aa6f69a645ae5c909b52cc6e0492080742b4e53d630821316be6d7c3073331a23e7790c6a3bff32c9636107effe5b208f73dfa1a84a97150c0642414245b501036e00000052461a11000000001c141cad4af1efb52963d3a55bd6d477b4b37c21a44c93d8ddae2c992b53ca721abed2e6f6e945de5c1ddc58c93b276fdd5f2f9b197efbd64f433ee2bc4006076a38d7be147fbb1bd0a58682a15d6e4167001c58bf980e9029efda59960280010442454546840302628065c498b668156ed806f099f906c719ffd49ce06817902f0ac9c1c0f74c054241424501016e2b75d3b395dc94990b4dfcc968704c7152dfe465c4a6448e2e301076fec051d3ad5d7d7e577436794c51474b01480d4cc59ef475001da91a6409cea3b95a8a", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000b1c91fbb1f574b1ab4e69685a0b5bbf1368c488e9b5e93766b05141be765456901000000000000005646da1fdd62a7a67010d38b2cca5fda0955a92bd9ac37d2f2ba77ac0895f4fb01000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b280100000000000000bc08c197f7281aebdbd1dad6c2b02a6831ee8b5320745f9be57eb2a1f1b0fa9f0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000001b68f8281e8ed7d7486a83f77342de99ec9985bbe4ebebccc78a56375509b45801000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b892220100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf01000000000000007de9970a903513e5e8d0429c3671130008fc950d6d02c31d3b1746b6d839f39e0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec00100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000007a99eb5f9dd892ab541176abfcb3a9b87e184c9f5737f0c1e69b90f62c522aef0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece010000000000000021524dbf5534dbd556efcdaa53d9379ffd8c9352f2fefc46eacb60153dbcd0960100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b0100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000600e433183aa04247203b358cbdb99116a3c5d6a3c4b2692487a2b3791de004d0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000000a78114972d0d627bf3e6a0d42be67a6a9b0383b38b19c0a4b8d94680314b7e801000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b0100000000000000f5ed118038230c29a138443aa6772e24aad7567226d6dd98e5596856a98166c9010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e0100000000000000798d28848cf6e642e3148e0a250ab346b5f21a81d5496141318ff57b5766f46801000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000ffc2fc861e9ea596352c1c3c7c0486eb5cf53554304547114a07f4b30a38ae980100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000ab1995aa88c7dc9c7a1590e78ffcbaaba885e7230109206d368471b88f89f7670100000000000000fb267d8f26a35c34d58b4dc0633cf56f5eb6882ec873270dfbb0e55c64404dc101000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000dc5289899ba3e91edf93781843f9abbc99b3ae0beb940c385edf706acdf0d2540100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000532bc96e942be9de9214f40c9d221fb9235856f6a781a8be0161acf804b4dbe40100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf701586001000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d060100000000000000c9c3952008fa118083591bd0647a97b3f3f531b5ccc10d21430724a4d6bba7230100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000002246d9cae89005f399a6a68cd771ad53b52c5d557c17716b873fd42260e4f7b010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace10100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c601000000000000004e9fa37851f580bbd096fc81f5aa28df78d0c8f0f70963121785cd5095a8d9630100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac965901000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c0100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000425d9edc1cc5cf795f0caee680a379215cb77d71c69bfe41296df63cb2ac344301000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f0100000000000000193dfdde1c1e8f0d91530a15b8eab00e255cc2dd6b19e689868120922f79a5bb01000000000000002ceff07215cfc046c18a3f7473c6be0c897813c2a133b34593df95bd2da440a30100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000cc7e024990cfcb38b700cfdb5ad0c66d9dc49c94a3ebc26aecb98b3d298f1b1d01000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a02401000000000000001773a9984bd619d4469608aeeb38a98e688474cf0870a45ced8d297ba56275be0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000cffc9fb5e5403c75c8a4e3a270affdeced91b6db5ef38cc3058c36b79cf77b6501000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac01000000000000002fbe3b1b79ed47d070067479266ad9b30732c4b8f6170c8888a1ad5365053e760100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c70100000000000000367e8b4f569ccc588698343dea3e0666c7d77295a6e14c27bbd501f8261fb9ff01000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000aa7c33f99de85adfe5ab929090294916df6bdd9a1cc75f632058509f4e1a9bb401000000000000001a6cdb9906d5861bf1101aa5a8816a25be63b460843c13065760d0e9bd5a2f60010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a40100000000000000e25d7eaacb625bd47c64f4d8a745718a0034000443167715e8709a1b6227cf1b01000000000000007d62c0b3dc3697b9adf2065032a236d0f6d926c086977dd6339ab02489a684a201000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c90066528010000000000000097485aff1573c42971da2d363dd00e29dd61c8e285d100ace0347bfdb6b5981701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000053bbc598c69604e82050d2008b95b491ce8c826dc39a2e300437ffacc86d52ef010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000410800000000000000014be14b0100052100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b01" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index f5a72a678728be9913fba38a524c23574bf3a9e8..ae2137b4558275ad81ac7ead0df72fb8cbe2f142 100644 GIT binary patch delta 51 zcmbPmT(a-DWJ3$%7N$~RHlM_toc!eW8et|NX5L;S%pwyG6P%yLvVDFQ>&G7e+dvZx delta 53 zcmeA>E;-@2WJ3$%7N$~R_JHDo_~Me3_G)1!AZFfPEzBYl4i}x9#j<^F7VF0!00>VM A6951J diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 50e1e7d73f9d3098d6445c81b97696dd0d44db49..f666e7d267fa5714d4ff4c6d69feb52753cd229b 100644 GIT binary patch delta 34 lcmdlon{CrHYybc)<_~88 diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index 800a1d51bc725e9583f0e8fb021da63e8ccbc1f7..6e927a2f7116da55dc15de34fdfb128156fdb7bf 100644 GIT binary patch delta 33 hcmdlqk7WZ8b*i!XB;c6E@x>)6oBP!^Hp4k?t6rr501BrMTL1t6 From c3267ed488b0fcee5f537c60c341cc5f1c7d63e0 Mon Sep 17 00:00:00 2001 From: James Wilson Date: Mon, 22 Jul 2024 13:54:32 +0100 Subject: [PATCH 077/137] Add hash method to ExtrinsicDetails (#1676) * Add hash method to ExtrinsicDetails * fix test --- core/src/blocks/extrinsics.rs | 63 ++++++++++++++++--- subxt/src/blocks/extrinsic_types.rs | 5 ++ .../src/full_client/client/unstable_rpcs.rs | 12 ++-- 3 files changed, 64 insertions(+), 16 deletions(-) diff --git a/core/src/blocks/extrinsics.rs b/core/src/blocks/extrinsics.rs index 283431f206..0af853fc8b 100644 --- a/core/src/blocks/extrinsics.rs +++ b/core/src/blocks/extrinsics.rs @@ -3,15 +3,14 @@ // see LICENSE for license details. use crate::blocks::extrinsic_signed_extensions::ExtrinsicSignedExtensions; -use crate::utils::strip_compact_prefix; use crate::{ - config::Config, + config::{Config, Hasher}, error::{BlockError, Error, MetadataError}, Metadata, }; use alloc::sync::Arc; use alloc::vec::Vec; -use codec::Decode; +use codec::{Compact, CompactLen, Decode}; use scale_decode::DecodeAsType; use subxt_metadata::PalletMetadata; @@ -169,24 +168,28 @@ where const VERSION_MASK: u8 = 0b0111_1111; const LATEST_EXTRINSIC_VERSION: u8 = 4; - // removing the compact encoded prefix: - let bytes: Arc<[u8]> = strip_compact_prefix(extrinsic_bytes)?.1.into(); + // Wrap all of the bytes in Arc for easy sharing. + let bytes: Arc<[u8]> = Arc::from(extrinsic_bytes); + + // The compact encoded length prefix. + let prefix = >::decode(&mut &*extrinsic_bytes)?; + let prefix_len = >::compact_len(&prefix.0); // Extrinsic are encoded in memory in the following way: // - first byte: abbbbbbb (a = 0 for unsigned, 1 for signed, b = version) // - signature: [unknown TBD with metadata]. // - extrinsic data - let first_byte: u8 = Decode::decode(&mut &bytes[..])?; + let version_byte: u8 = Decode::decode(&mut &bytes[prefix_len..])?; - let version = first_byte & VERSION_MASK; + let version = version_byte & VERSION_MASK; if version != LATEST_EXTRINSIC_VERSION { return Err(BlockError::UnsupportedVersion(version).into()); } - let is_signed = first_byte & SIGNATURE_MASK != 0; + let is_signed = version_byte & SIGNATURE_MASK != 0; - // Skip over the first byte which denotes the version and signing. - let cursor = &mut &bytes[1..]; + // Skip over the prefix and first byte which denotes the version and signing. + let cursor = &mut &bytes[prefix_len + 1..]; let signed_details = is_signed .then(|| -> Result { @@ -248,6 +251,12 @@ where }) } + /// Calculate and return the hash of the extrinsic, based on the configured hasher. + pub fn hash(&self) -> T::Hash { + // Use hash(), not hash_of(), because we don't want to double encode the bytes. + T::Hasher::hash(&self.bytes) + } + /// Is the extrinsic signed? pub fn is_signed(&self) -> bool { self.signed_details.is_some() @@ -630,6 +639,40 @@ mod tests { ); } + #[test] + fn tx_hashes_line_up() { + let metadata = metadata(); + let ids = ExtrinsicPartTypeIds::new(&metadata).unwrap(); + + let tx = crate::dynamic::tx( + "Test", + "TestCall", + vec![ + Value::u128(10), + Value::bool(true), + Value::string("SomeValue"), + ], + ); + + // Encoded TX ready to submit. + let tx_encoded = crate::tx::create_unsigned::(&tx, &metadata) + .expect("Valid dynamic parameters are provided"); + + // Extrinsic details ready to decode. + let extrinsic = ExtrinsicDetails::::decode_from( + 1, + tx_encoded.encoded(), + metadata, + ids, + ) + .expect("Valid extrinsic"); + + // Both of these types should produce the same bytes. + assert_eq!(tx_encoded.encoded(), extrinsic.bytes(), "bytes should eq"); + // Both of these types should produce the same hash. + assert_eq!(tx_encoded.hash(), extrinsic.hash(), "hashes should eq"); + } + #[test] fn statically_decode_extrinsic() { let metadata = metadata(); diff --git a/subxt/src/blocks/extrinsic_types.rs b/subxt/src/blocks/extrinsic_types.rs index f334085ede..e7c876b679 100644 --- a/subxt/src/blocks/extrinsic_types.rs +++ b/subxt/src/blocks/extrinsic_types.rs @@ -159,6 +159,11 @@ where } } + /// See [`subxt_core::blocks::ExtrinsicDetails::hash()`]. + pub fn hash(&self) -> T::Hash { + self.inner.hash() + } + /// See [`subxt_core::blocks::ExtrinsicDetails::is_signed()`]. pub fn is_signed(&self) -> bool { self.inner.is_signed() diff --git a/testing/integration-tests/src/full_client/client/unstable_rpcs.rs b/testing/integration-tests/src/full_client/client/unstable_rpcs.rs index 830fb3b26c..232d91490d 100644 --- a/testing/integration-tests/src/full_client/client/unstable_rpcs.rs +++ b/testing/integration-tests/src/full_client/client/unstable_rpcs.rs @@ -326,18 +326,18 @@ async fn transaction_v1_broadcast() { let api = ctx.client(); let rpc = ctx.unstable_rpc_methods().await; - let tx = node_runtime::tx() + let tx_payload = node_runtime::tx() .balances() .transfer_allow_death(bob_address.clone(), 10_001); - let tx_bytes = ctx + let tx = ctx .client() .tx() - .create_signed_offline(&tx, &dev::alice(), Default::default()) - .unwrap() - .into_encoded(); + .create_signed_offline(&tx_payload, &dev::alice(), Default::default()) + .unwrap(); - let tx_hash = ::Hasher::hash(&tx_bytes[2..]); + let tx_hash = tx.hash(); + let tx_bytes = tx.into_encoded(); // Subscribe to finalized blocks. let mut finalized_sub = api.blocks().subscribe_finalized().await.unwrap(); From 39d130ec69054f0e1c14dc6ec94bb63aa9875dec Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Mon, 29 Jul 2024 17:43:33 +0200 Subject: [PATCH 078/137] chore: make it possible override `clippy all` (#1698) * chore: make it possible override `clippy all` * chore: fix clippy lints * Update Cargo.toml --- Cargo.toml | 3 ++- metadata/src/lib.rs | 2 +- subxt/src/book/setup/codegen.rs | 2 +- subxt/src/tx/tx_client.rs | 7 +++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index fe843de5c9..caeaf6bd2d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -57,7 +57,8 @@ unused_extern_crates = "deny" [workspace.lints.clippy] type_complexity = "allow" -all = "deny" +# Priority -1 means that it can overwritten by other lints, https://rust-lang.github.io/rust-clippy/master/index.html#/lint_groups_priority +all = { level = "deny", priority = -1 } # https://github.com/rust-lang/rust-clippy/issues/12643 manual-unwrap-or-default = "allow" diff --git a/metadata/src/lib.rs b/metadata/src/lib.rs index cec6afd565..fb86ddcbef 100644 --- a/metadata/src/lib.rs +++ b/metadata/src/lib.rs @@ -441,7 +441,7 @@ impl StorageHasher { /// /// 1. A fixed size hash. (not present for [`StorageHasher::Identity`]). /// 2. The SCALE encoded key that was used as an input to the hasher (only present for - /// [`StorageHasher::Twox64Concat`], [`StorageHasher::Blake2_128Concat`] or [`StorageHasher::Identity`]). + /// [`StorageHasher::Twox64Concat`], [`StorageHasher::Blake2_128Concat`] or [`StorageHasher::Identity`]). /// /// This function returns the number of bytes used to represent the first of these. pub fn len_excluding_key(&self) -> usize { diff --git a/subxt/src/book/setup/codegen.rs b/subxt/src/book/setup/codegen.rs index 602f108e22..a2e1cc7263 100644 --- a/subxt/src/book/setup/codegen.rs +++ b/subxt/src/book/setup/codegen.rs @@ -46,7 +46,7 @@ //! Using the [`#[subxt]`](crate::subxt) macro carries some downsides: //! //! - Using it to generate an interface will have a small impact on compile times (though much less of -//! one if you only need a few pallets). +//! one if you only need a few pallets). //! - IDE support for autocompletion and documentation when using the macro interface can be poor. //! - It's impossible to manually look at the generated code to understand and debug things. //! diff --git a/subxt/src/tx/tx_client.rs b/subxt/src/tx/tx_client.rs index b3007cec1e..bbeab44199 100644 --- a/subxt/src/tx/tx_client.rs +++ b/subxt/src/tx/tx_client.rs @@ -599,11 +599,10 @@ pub enum TransactionInvalid { /// /// # Possible causes /// - /// For `FRAME`-based runtimes this would be caused by `current block number + /// For `FRAME`-based runtimes this would be caused by `current block number` /// - Era::birth block number > BlockHashCount`. (e.g. in Polkadot `BlockHashCount` = 2400, so - /// a - /// transaction with birth block number 1337 would be valid up until block number 1337 + 2400, - /// after which point the transaction would be considered to have an ancient birth block.) + /// a transaction with birth block number 1337 would be valid up until block number 1337 + 2400, + /// after which point the transaction would be considered to have an ancient birth block.) AncientBirthBlock, /// The transaction would exhaust the resources of current block. /// From 732bb38c96d102db9da6f17dfe9cbeb72f2e6d48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 17:09:37 +0100 Subject: [PATCH 079/137] build(deps): bump serde_json from 1.0.120 to 1.0.121 (#1696) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.120 to 1.0.121. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.120...v1.0.121) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 5 +++-- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2a32e43f40..e53073a3c1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4095,11 +4095,12 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.120" +version = "1.0.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5" +checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] diff --git a/Cargo.toml b/Cargo.toml index caeaf6bd2d..0fa3f23147 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,7 @@ scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" serde = { version = "1.0.204", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.120", default-features = false } +serde_json = { version = "1.0.121", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" tokio = { version = "1.38", default-features = false } From 99fa8ee2bf145a2e7f982b700f01588671dde2fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 17:09:48 +0100 Subject: [PATCH 080/137] build(deps): bump clap from 4.5.9 to 4.5.11 (#1695) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.9 to 4.5.11. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.9...clap_complete-v4.5.11) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e53073a3c1..4e9afa766f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -869,9 +869,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.9" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64acc1846d54c1fe936a78dc189c34e28d3f5afc348403f28ecf53660b9b8462" +checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" dependencies = [ "clap_builder", "clap_derive", @@ -879,9 +879,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.9" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8393d67ba2e7bfaf28a23458e4e2b543cc73a99595511eb207fdb8aede942" +checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" dependencies = [ "anstream", "anstyle", @@ -891,9 +891,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.8" +version = "4.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bac35c6dafb060fd4d275d9a4ffae97917c13a6327903a8be2153cd964f7085" +checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -4884,7 +4884,7 @@ dependencies = [ name = "subxt-cli" version = "0.37.0" dependencies = [ - "clap 4.5.9", + "clap 4.5.11", "color-eyre", "frame-metadata 16.0.0", "heck 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index 0fa3f23147..a54a9f3547 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,7 @@ assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } blake2 = { version = "0.10.6", default-features = false } -clap = { version = "4.5.9", features = ["derive", "cargo"] } +clap = { version = "4.5.11", features = ["derive", "cargo"] } cfg-if = "1.0.0" criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } From 83ef8a9f131cb3d33094f44b34e5868ecefdd40a Mon Sep 17 00:00:00 2001 From: James Wilson Date: Mon, 29 Jul 2024 17:10:49 +0100 Subject: [PATCH 081/137] Allow tx payloads to be boxed (#1690) * Allow tx payloads to be boxed * Add example of boxed payloads * explicit box import * box import at top * cargo fmt --- core/src/tx/payload.rs | 27 +++++++++++++++++ subxt/examples/tx_boxed.rs | 43 ++++++++++++++++++++++++++++ subxt/src/book/usage/transactions.rs | 8 ++++++ 3 files changed, 78 insertions(+) create mode 100644 subxt/examples/tx_boxed.rs diff --git a/core/src/tx/payload.rs b/core/src/tx/payload.rs index bd9c79db17..b2e9682038 100644 --- a/core/src/tx/payload.rs +++ b/core/src/tx/payload.rs @@ -9,6 +9,7 @@ use crate::error::MetadataError; use crate::metadata::Metadata; use crate::Error; use alloc::borrow::{Cow, ToOwned}; +use alloc::boxed::Box; use alloc::string::String; use alloc::vec::Vec; @@ -38,6 +39,32 @@ pub trait Payload { } } +macro_rules! boxed_payload { + ($ty:path) => { + impl Payload for $ty { + fn encode_call_data_to( + &self, + metadata: &Metadata, + out: &mut Vec, + ) -> Result<(), Error> { + self.as_ref().encode_call_data_to(metadata, out) + } + fn encode_call_data(&self, metadata: &Metadata) -> Result, Error> { + self.as_ref().encode_call_data(metadata) + } + fn validation_details(&self) -> Option> { + self.as_ref().validation_details() + } + } + }; +} + +boxed_payload!(Box); +#[cfg(feature = "std")] +boxed_payload!(std::sync::Arc); +#[cfg(feature = "std")] +boxed_payload!(std::rc::Rc); + /// Details required to validate the shape of a transaction payload against some metadata. pub struct ValidationDetails<'a> { /// The pallet name. diff --git a/subxt/examples/tx_boxed.rs b/subxt/examples/tx_boxed.rs new file mode 100644 index 0000000000..62812b9891 --- /dev/null +++ b/subxt/examples/tx_boxed.rs @@ -0,0 +1,43 @@ +#![allow(missing_docs)] +use subxt::{OnlineClient, PolkadotConfig}; +use subxt_signer::sr25519::dev; + +#[subxt::subxt(runtime_metadata_path = "../artifacts/polkadot_metadata_small.scale")] +pub mod polkadot {} + +#[tokio::main] +async fn main() -> Result<(), Box> { + let api = OnlineClient::::new().await?; + + // Prepare some extrinsics. These are boxed so that they can live alongside each other. + let txs = [dynamic_remark(), balance_transfer(), remark()]; + + for tx in txs { + let from = dev::alice(); + api.tx() + .sign_and_submit_then_watch_default(&tx, &from) + .await? + .wait_for_finalized_success() + .await?; + + println!("Submitted tx"); + } + + Ok(()) +} + +fn balance_transfer() -> Box { + let dest = dev::bob().public_key().into(); + Box::new(polkadot::tx().balances().transfer_allow_death(dest, 10_000)) +} + +fn remark() -> Box { + Box::new(polkadot::tx().system().remark(vec![1, 2, 3, 4, 5])) +} + +fn dynamic_remark() -> Box { + use subxt::dynamic::{tx, Value}; + let tx_payload = tx("System", "remark", vec![Value::from_bytes("Hello")]); + + Box::new(tx_payload) +} diff --git a/subxt/src/book/usage/transactions.rs b/subxt/src/book/usage/transactions.rs index b897790599..145277cde2 100644 --- a/subxt/src/book/usage/transactions.rs +++ b/subxt/src/book/usage/transactions.rs @@ -196,6 +196,14 @@ //! This example doesn't wait for the transaction to be included in a block; it just submits it and //! hopes for the best! //! +//! ### Boxing transaction payloads +//! +//! Transaction payloads can be boxed so that they all share a common type and can be stored together. +//! +//! ```rust,ignore +#![doc = include_str!("../../../examples/tx_boxed.rs")] +//! ``` +//! //! ### Custom handling of transaction status updates //! //! If you'd like more control or visibility over exactly which status updates are being emitted for From 14818fc12a624d2e31a7cc80e59b0135865e0aef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 19:13:22 +0300 Subject: [PATCH 082/137] build(deps): bump scale-value from 0.16.0 to 0.16.1 (#1693) Bumps [scale-value](https://github.com/paritytech/scale-value) from 0.16.0 to 0.16.1. - [Release notes](https://github.com/paritytech/scale-value/releases) - [Changelog](https://github.com/paritytech/scale-value/blob/main/CHANGELOG.md) - [Commits](https://github.com/paritytech/scale-value/compare/v0.16.0...v0.16.1) --- updated-dependencies: - dependency-name: scale-value dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 4e9afa766f..fc8bf01cbc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3916,9 +3916,9 @@ dependencies = [ [[package]] name = "scale-value" -version = "0.16.0" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2cf9738c263c665144177201126bdad39d3d62512152f178f35002228026976" +checksum = "5ab68da501822d2769c4c5823535f6104a6d4cd15f0d3eba3e647e725294ae22" dependencies = [ "base58", "blake2", diff --git a/Cargo.toml b/Cargo.toml index a54a9f3547..95b8f5e3a9 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -93,7 +93,7 @@ proc-macro2 = "1.0.86" quote = "1.0.36" regex = { version = "1.10.5", default-features = false } scale-info = { version = "2.11.3", default-features = false } -scale-value = { version = "0.16.0", default-features = false } +scale-value = { version = "0.16.1", default-features = false } scale-bits = { version = "0.6.0", default-features = false } scale-decode = { version = "0.13.1", default-features = false } scale-encode = { version = "0.7.1", default-features = false } From 9fbabd01ad3b04a334e5e3a081e5f8a97ec2011c Mon Sep 17 00:00:00 2001 From: shangchengbabaiban Date: Tue, 30 Jul 2024 01:45:37 +0900 Subject: [PATCH 083/137] chore: fix some comments (#1697) Signed-off-by: shangchengbabaiban Co-authored-by: Niklas Adolfsson --- cli/src/commands/codegen.rs | 2 +- cli/src/commands/explore/runtime_apis/mod.rs | 2 +- core/src/utils/account_id20.rs | 2 +- scripts/publish.sh | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/src/commands/codegen.rs b/cli/src/commands/codegen.rs index e83e941b8e..d222d6da3c 100644 --- a/cli/src/commands/codegen.rs +++ b/cli/src/commands/codegen.rs @@ -233,7 +233,7 @@ fn codegen( codegen.add_derives_for_type(ty, std::iter::once(derive), d.recursive); } - // Configure attribtues: + // Configure attributes: let universal_attributes = raw_attributes .iter() .map(|raw| syn::parse_str(raw)) diff --git a/cli/src/commands/explore/runtime_apis/mod.rs b/cli/src/commands/explore/runtime_apis/mod.rs index 94bc7cb6b2..e39bcbe151 100644 --- a/cli/src/commands/explore/runtime_apis/mod.rs +++ b/cli/src/commands/explore/runtime_apis/mod.rs @@ -24,7 +24,7 @@ use subxt_metadata::RuntimeApiMetadata; /// None => Show pallet docs + available methods /// Some (invalid) => Show Error + available methods /// Some (valid) => Show method docs + output type description -/// exectute is: +/// execute is: /// false => Show input type description + Example Value /// true => validate (trailing args + build node connection) /// validation is: diff --git a/core/src/utils/account_id20.rs b/core/src/utils/account_id20.rs index 3f04f5706d..48f9306349 100644 --- a/core/src/utils/account_id20.rs +++ b/core/src/utils/account_id20.rs @@ -2,7 +2,7 @@ // This file is dual-licensed as Apache-2.0 or GPL-3.0. // see LICENSE for license details. -//! `AccountId20` is a repressentation of Ethereum address derived from hashing the public key. +//! `AccountId20` is a representation of Ethereum address derived from hashing the public key. use core::fmt::Display; diff --git a/scripts/publish.sh b/scripts/publish.sh index a127e4196f..ce441d0d5c 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -83,7 +83,7 @@ for CRATE_DIR in ${ORDER[@]}; do sleep 3 remote_version if [ "$REMOTE_VERSION" = "$VERSION" ]; then - echo "🥳 $NAME@$VERSION published succesfully." + echo "🥳 $NAME@$VERSION published successfully." sleep 3 break else From 1d94a6ff85f3abcd10d40df4279ac65cad675219 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 18:45:58 +0200 Subject: [PATCH 084/137] build(deps): bump tokio from 1.38.1 to 1.39.2 (#1694) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.38.1 to 1.39.2. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.38.1...tokio-1.39.2) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 18 +++++++++--------- Cargo.toml | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index fc8bf01cbc..154b93bd4f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2794,13 +2794,14 @@ dependencies = [ [[package]] name = "mio" -version = "0.8.11" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c" +checksum = "4569e456d394deccd22ce1c1913e6ea0e54519f577285001215d33557431afe4" dependencies = [ + "hermit-abi 0.3.9", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -5192,26 +5193,25 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.38.1" +version = "1.39.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb2caba9f80616f438e09748d5acda951967e1ea58508ef53d9c6402485a46df" +checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.3.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 95b8f5e3a9..6278d6b90d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -103,7 +103,7 @@ serde = { version = "1.0.204", default-features = false, features = ["derive"] } serde_json = { version = "1.0.121", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" -tokio = { version = "1.38", default-features = false } +tokio = { version = "1.39", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" From a8687c2671ead42a79b11f816886813126f60777 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 29 Jul 2024 18:46:20 +0200 Subject: [PATCH 085/137] build(deps): bump trybuild from 1.0.97 to 1.0.98 (#1692) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.97 to 1.0.98. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.97...1.0.98) --- updated-dependencies: - dependency-name: trybuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 154b93bd4f..43b8520434 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5490,9 +5490,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1e5645f2ee8025c2f1d75e1138f2dd034d74e6ba54620f3c569ba2a2a1ea06" +checksum = "b55265878356bdd85c9baa15859c87de93b2bf1f33acf752040a561e4a228f62" dependencies = [ "glob 0.3.1", "serde", diff --git a/Cargo.toml b/Cargo.toml index 6278d6b90d..9b67061308 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -107,7 +107,7 @@ tokio = { version = "1.39", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" -trybuild = "1.0.97" +trybuild = "1.0.98" url = "2.5.2" wabt = "0.10.0" wasm-bindgen-test = "0.3.24" From 11a99e1ee668e792b8f0ef503ea06377e6625861 Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 10:16:47 +0100 Subject: [PATCH 086/137] Update Artifacts (auto-generated) (#1691) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- artifacts/demo_chain_specs/polkadot.json | 8 +- artifacts/polkadot_metadata_full.scale | Bin 418702 -> 420501 bytes artifacts/polkadot_metadata_small.scale | Bin 101810 -> 103661 bytes artifacts/polkadot_metadata_tiny.scale | Bin 69424 -> 71273 bytes .../src/full_client/codegen/polkadot.rs | 736 ++++++++++++------ 5 files changed, 497 insertions(+), 247 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 046a81c21f..0941292ba8 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x04184b8097a768777db9b7fd5ba2a3b51f30911ee4db30bd7df8d3a569a69f01bcdfcc4b0101333b1a110000000093441a1100000000044d56dc8601c76363dcc22c01c4b6cb27068d7ffcbb37b4454b19edde9bef9e903ad64b010193441a1100000000f34d1a1100000000044a8984790b4ece325bb83f3d4276bfc1cd8a4a4caf5c7addb1130687edd781778edf4b0101f34d1a110000000053571a110000000000000c184b8097a768777db9b7fd5ba2a3b51f30911ee4db30bd7df8d3a569a69f01bcdfcc4b01018f23000000000000333b1a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b7159010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000b6f842e2acd710f5ebcef09a9cd5ba87752fe04edccc593b9696213753b986440100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b8688749010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000aa222d924478223f49354af931048bb7b49311b9234551c0b551b830f93ab0580100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec29817010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef7701000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000d7284920e97c8e1c9df4184b5c4a68f46fda1b4e658d70af593e7e12b0855d2101000000000000000400000000000000024a8984790b4ece325bb83f3d4276bfc1cd8a4a4caf5c7addb1130687edd781778edf4b01019123000000000000f34d1a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b7159010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000b6f842e2acd710f5ebcef09a9cd5ba87752fe04edccc593b9696213753b986440100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b8688749010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000aa222d924478223f49354af931048bb7b49311b9234551c0b551b830f93ab0580100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec29817010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef7701000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000842ecffaca85dccf1514fb105e15817a69e1b72673da0e6fd707a8cba004fc9701000000000000000400000000000000024d56dc8601c76363dcc22c01c4b6cb27068d7ffcbb37b4454b19edde9bef9e903ad64b0101902300000000000093441a11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b0100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b01000000000000008844cf1d32b9d0484db3785be22fd9a31ad7b4ab019051b30ded8362276b7159010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee49004010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da7220100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f760100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000b6f842e2acd710f5ebcef09a9cd5ba87752fe04edccc593b9696213753b986440100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c56010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a420100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000a07f151db53097c2da9dac4b2e0f194931a677a3ba99df0f3976e34409fd64760100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009e5538e9452e6d430a9cf27424f05754077ab0ed6f5fd4676da78adf34e2e16c010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000026b2167644aa3099c01676120a5b4300c92ae65636f958fcc1b47df5a4b0707e0100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a01000000000000007af044e1b846cbc70f712a70a5294c18fd1a65457dab247a22e55eeda941021e0100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b8688749010000000000000016f34c9e6687012c42f9c02de75b9499849fe771f2ad2e666f965dc6627735540100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd43010000000000000000d8e7468327dd3b54dd0be8e04f50b392e9a5d966b60a904428aa8d9260833501000000000000004e7ebce774a9a0a6945bd1ad0bd823e791229ef6a4075cfbfc5054175024601f0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b200100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000005e0fa84f762f7d6e4c4b0c18a86e1b7da6cb4fe7dfcf6b5c0056a7ccd8eb201401000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000322dcdf3a5f50091af8b876983da0e0e98e358339e6033cdb865cd64995f8613010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d27501405481701000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c470100000000000000aa222d924478223f49354af931048bb7b49311b9234551c0b551b830f93ab0580100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce38764010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f010000000000000028bb30abb89f27bb424ec0de392b74d85f07287638d487e41c1d2334256336600100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec29817010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e01000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef7701000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000e9a9c135387c16fd32410cdaa2e7e3a0d748c94e9bbb0aa923951fc8bb4f39a00100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5430151, - "finalizedBlockHeader": "0xfa186aad11702ce4c99d80e4afb99615b98f642b946856553c1af9bc6e52c81e2e852f0534f94b8f338160d76aa6f69a645ae5c909b52cc6e0492080742b4e53d630821316be6d7c3073331a23e7790c6a3bff32c9636107effe5b208f73dfa1a84a97150c0642414245b501036e00000052461a11000000001c141cad4af1efb52963d3a55bd6d477b4b37c21a44c93d8ddae2c992b53ca721abed2e6f6e945de5c1ddc58c93b276fdd5f2f9b197efbd64f433ee2bc4006076a38d7be147fbb1bd0a58682a15d6e4167001c58bf980e9029efda59960280010442454546840302628065c498b668156ed806f099f906c719ffd49ce06817902f0ac9c1c0f74c054241424501016e2b75d3b395dc94990b4dfcc968704c7152dfe465c4a6448e2e301076fec051d3ad5d7d7e577436794c51474b01480d4cc59ef475001da91a6409cea3b95a8a", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000b1c91fbb1f574b1ab4e69685a0b5bbf1368c488e9b5e93766b05141be765456901000000000000005646da1fdd62a7a67010d38b2cca5fda0955a92bd9ac37d2f2ba77ac0895f4fb01000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b280100000000000000bc08c197f7281aebdbd1dad6c2b02a6831ee8b5320745f9be57eb2a1f1b0fa9f0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000001b68f8281e8ed7d7486a83f77342de99ec9985bbe4ebebccc78a56375509b45801000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b892220100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf01000000000000007de9970a903513e5e8d0429c3671130008fc950d6d02c31d3b1746b6d839f39e0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec00100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000007a99eb5f9dd892ab541176abfcb3a9b87e184c9f5737f0c1e69b90f62c522aef0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece010000000000000021524dbf5534dbd556efcdaa53d9379ffd8c9352f2fefc46eacb60153dbcd0960100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b0100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000600e433183aa04247203b358cbdb99116a3c5d6a3c4b2692487a2b3791de004d0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000000a78114972d0d627bf3e6a0d42be67a6a9b0383b38b19c0a4b8d94680314b7e801000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d580100000000000000a892342c56149812a43e98c82b6a3dfee7eff384d9b6d832002ea63838f64900010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b0100000000000000f5ed118038230c29a138443aa6772e24aad7567226d6dd98e5596856a98166c9010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000cf686d15dbec319906aaca7e261f846bdd62b1c821a119f233d436507341126d0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e0100000000000000798d28848cf6e642e3148e0a250ab346b5f21a81d5496141318ff57b5766f46801000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000ffc2fc861e9ea596352c1c3c7c0486eb5cf53554304547114a07f4b30a38ae980100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000ab1995aa88c7dc9c7a1590e78ffcbaaba885e7230109206d368471b88f89f7670100000000000000fb267d8f26a35c34d58b4dc0633cf56f5eb6882ec873270dfbb0e55c64404dc101000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000dc5289899ba3e91edf93781843f9abbc99b3ae0beb940c385edf706acdf0d2540100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000532bc96e942be9de9214f40c9d221fb9235856f6a781a8be0161acf804b4dbe40100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf701586001000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d060100000000000000c9c3952008fa118083591bd0647a97b3f3f531b5ccc10d21430724a4d6bba7230100000000000000b1fbf369e5eff1a5b29e8ea0cee0d20ee61c685198edc4cbf6b8473b4aa1e5ae0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000002246d9cae89005f399a6a68cd771ad53b52c5d557c17716b873fd42260e4f7b010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace10100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c601000000000000004e9fa37851f580bbd096fc81f5aa28df78d0c8f0f70963121785cd5095a8d9630100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac965901000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000826fea075408d2c9331974dad61f4fedb0a7a306711c696997bc63b4b0e73e4c0100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000425d9edc1cc5cf795f0caee680a379215cb77d71c69bfe41296df63cb2ac344301000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f0100000000000000193dfdde1c1e8f0d91530a15b8eab00e255cc2dd6b19e689868120922f79a5bb01000000000000002ceff07215cfc046c18a3f7473c6be0c897813c2a133b34593df95bd2da440a30100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000cc7e024990cfcb38b700cfdb5ad0c66d9dc49c94a3ebc26aecb98b3d298f1b1d01000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a02401000000000000001773a9984bd619d4469608aeeb38a98e688474cf0870a45ced8d297ba56275be0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f60100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000cffc9fb5e5403c75c8a4e3a270affdeced91b6db5ef38cc3058c36b79cf77b6501000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac01000000000000002fbe3b1b79ed47d070067479266ad9b30732c4b8f6170c8888a1ad5365053e760100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c70100000000000000367e8b4f569ccc588698343dea3e0666c7d77295a6e14c27bbd501f8261fb9ff01000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000aa7c33f99de85adfe5ab929090294916df6bdd9a1cc75f632058509f4e1a9bb401000000000000001a6cdb9906d5861bf1101aa5a8816a25be63b460843c13065760d0e9bd5a2f60010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a40100000000000000e25d7eaacb625bd47c64f4d8a745718a0034000443167715e8709a1b6227cf1b01000000000000007d62c0b3dc3697b9adf2065032a236d0f6d926c086977dd6339ab02489a684a201000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c90066528010000000000000097485aff1573c42971da2d363dd00e29dd61c8e285d100ace0347bfdb6b5981701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000053bbc598c69604e82050d2008b95b491ce8c826dc39a2e300437ffacc86d52ef010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000410800000000000000014be14b0100052100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b01" + "babeEpochChanges": "0x04a2d890ee82166f7952562a558d815fe6cef0b6362bf7811409c57c5ea82385bc87544d0101f3c41b110000000053ce1b11000000000445df1e3f57ad05f71fe17afe3cebed1aefa1b2166bb23dda0a8f2b608f71d789da5d4d010153ce1b1100000000b3d71b1100000000089e1e60c6dec618234076aca035411e3b6fa11166311f1cee930fe888c207af5c33674d0101b3d71b110000000013e11b110000000000142e86b1d337e39a88ee7d00ce97ce4d3f4b4c1aa34bcfe2b8d195d812bdfaaa33674d0101b3d71b110000000013e11b1100000000000010142e86b1d337e39a88ee7d00ce97ce4d3f4b4c1aa34bcfe2b8d195d812bdfaaa33674d0101bb23000000000000b3d71b11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff08010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a7101000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000003a4a5b046c4b65c5a634c2ed909630384f543c66f59d0f4e9ece2e17e85b51700100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d93319300100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fefbf49831755894c16df273cb88a249d5995414190928c8ef5116f2a7d2592a0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b20971101000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a5003010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f0100000000000000246b0b8a8677b1a638cbcd7e8d69e1fbed9d92d62509236471464edb3170fe50010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000007f0c84abfd55473ff57e7d011c3914b545eb7e21a03693ccf894cf48d5071e0d010000000000000004000000000000000245df1e3f57ad05f71fe17afe3cebed1aefa1b2166bb23dda0a8f2b608f71d789da5d4d0101ba2300000000000053ce1b11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff08010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a7101000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000003a4a5b046c4b65c5a634c2ed909630384f543c66f59d0f4e9ece2e17e85b51700100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d93319300100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fefbf49831755894c16df273cb88a249d5995414190928c8ef5116f2a7d2592a0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b20971101000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a5003010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000a0a148a4317cb65cd79e698933220eb6c939e6ab2320cde67234c91069183e5101000000000000000400000000000000029e1e60c6dec618234076aca035411e3b6fa11166311f1cee930fe888c207af5c33674d0101bb23000000000000b3d71b11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff08010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a7101000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000003a4a5b046c4b65c5a634c2ed909630384f543c66f59d0f4e9ece2e17e85b51700100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d93319300100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fefbf49831755894c16df273cb88a249d5995414190928c8ef5116f2a7d2592a0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b20971101000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a5003010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f0100000000000000246b0b8a8677b1a638cbcd7e8d69e1fbed9d92d62509236471464edb3170fe50010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000007f0c84abfd55473ff57e7d011c3914b545eb7e21a03693ccf894cf48d5071e0d0100000000000000040000000000000002a2d890ee82166f7952562a558d815fe6cef0b6362bf7811409c57c5ea82385bc87544d0101b923000000000000f3c41b11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff08010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a7101000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000003a4a5b046c4b65c5a634c2ed909630384f543c66f59d0f4e9ece2e17e85b51700100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d93319300100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fefbf49831755894c16df273cb88a249d5995414190928c8ef5116f2a7d2592a0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b20971101000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a5003010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000fb8449bb17526fa44e5ff3974a968ebc5e85fcce154981e9876766f24c0c066b0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5455096, + "finalizedBlockHeader": "0x95ba990172662150791fe98c02275b4755873cb7c842997faa2a57fc4f04cee1c6a335051068834843dc084806abf87e897fb832bc9d291c90a5d91ef1ea9670aafe84db0eaa3ea0c8a1ffbbc5bfc1813ecf44d7bda065432ceeeeb28af61e916b674fc20c0642414245b501012b00000014d01b110000000074a7f84781b8f4f3b32beb82001a9d1b988c1275d821193993aa1e2a5e3a4f513354b4ea783f2630041b546dd18e68a6017629e8b7c67b6d50af481cbc029408647c2c86356dc8da64b924bcb35327226688d66e7338eef93ce0bbee90373d0f0442454546840379f36714f58411d0f92df241ef927a8f57a301f0d06b32c680bd82d61c65fc030542414245010154ac14ddb1a5d857592350340d904fa3ec2d9d551c6f0c04b05a5c6d70b3f547d8175815ba865867cee3eabd2bb92a7a0e16a14505cab12f7e83c65845fb2b85", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e010000000000000096ba2b1e94ac833ccba36c714518d6c14166f3726a0470c0c7b2bde962bf9d550100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec8010000000000000005f2a5fa89d67c11407b3cde00fb2b4482a40459800e16fa108f209456dcba4401000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000c406ffbebce8cdece918edf454d780aa298c8134a8f73848c856a9bc00c4b1b10100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b290010000000000000038ceeb0f56937fee55d1fe88c352d87a07941faa5c6539075cf7a328dc6f3bc8010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000799363fc98b936b54755c8532ae88418a28c3ba30666e6e68dd57dd0ad80c00d0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f810100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b01000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000007c077f9fbba618995d7df802a578934d36a5c0bec16dfcbaa7bce3879b4c44ce0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f9401000000000000004a68c3ada00a5c4248e74840b836cdb87eec6adbf99dabbb90a8ded6e04de6c60100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b0100000000000000700f01e62a9c97bb86cb5bbb57ac20c74af3695fcef14ebea1f133d3a9253cc701000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000086cddc46c9a3a42c3821183d597e76872f1d4904b84a92e8160ab4e0fb4d39a8010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000d50555d709e293864d91ca77494a0424d842151c92d74f8ee08b52d65d11cddb0100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000aa674be249403288a8078e209231e764e3679f2f66a1070ea5d9b5b420fc53ab0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000e5df12b672ff723fb3a00817d48fa27843bc7854328dfed88bb0e4afed20b65a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000293ec1101d6cc9df89a04ede0ac8ced7418803cc1d52a36ca8e45cca734388f90100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000068a8e1ed303440fb10c05a39e73361bf01f4137d5573d517df902645884ed240100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef390100000000000000c180ac4896d030d199247131f3aca75e70e2319e279d6d63cbaa6bc91bc6da4b01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb01000000000000005c3476954f173e1be823259907f3fd4bdb2b534d090ea5b7b2b3ac03403a80820100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d01000000000000005667d5ab2b7b56ad406d51dc657f573e65bc1fa542fc3ff43793a487af92aab6010000000000000043f0c689c19f75362242c2412fb65e09598d58b8b005f5044dfba06d463e6f8c01000000000000008077fd93f4073cf25aef527807c9ce1d5c02c447edeec07b02bc52f139f8c7730100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c5901000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa064901000000000000008118d80425d3b1fb332be3b1d02e6456b8ff7fa7414ef940c36c1e8e3262766b0100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af01000000000000008ad2a4c25ba87cadf77dccde3a56ac8387fb01a6e84d2dac43927f163e7ca0bf0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000cb5e02d81a588aa9a272a673c85003806bacb7c559e49fd38be111af308019aa0100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf701586001000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000bb7045a8da399663f16cc865bc2406716150aa804da56ddbabaad386064acdad0100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace10100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a8abb971b10439867351b3b23ad968edebee7dc255f0414cd20c60507909861a010000000000000037cf0e2296974765b587766e6f36c0b98f69c1698d0af2f8c3490841509ccedb01000000000000004e9fa37851f580bbd096fc81f5aa28df78d0c8f0f70963121785cd5095a8d9630100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac96590100000000000000e793c0578be40676ea7aafc611a54c214f6694253ade9652a3f1364823042d6e01000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf010000000000000049db9652c265135c10af93c19c3dbc35c72c1aa32b64a2614559de921be7c2a301000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f36359092840010000000000000045f84b0909eb669ce3d2099a935e269d6ebb091f1f8055fbfcf07d6efe7f43ab01000000000000004f7d68f733bb0699f0a1d85f331e073ebec15f6663c17179753f7f38abf3331701000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f0100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000025902a5eea68f7b0d1852f3292c8464f44aa9ad35e62b29fea99c172c8ec00e3010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a02401000000000000001773a9984bd619d4469608aeeb38a98e688474cf0870a45ced8d297ba56275be0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a59010000000000000099db3968f4b18d8976ae0071a375c5aa49c415a8d988cc18af8dcace497b96250100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000b14d7eb2d5f956e23a7407b7cc5ba971171d0ac45169351ccc6f836c9ae796730100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b01000000000000001a6cdb9906d5861bf1101aa5a8816a25be63b460843c13065760d0e9bd5a2f60010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a40100000000000000a4f4bbd302c06389ee3614c0943af03d52364f172ef05021aa93d12aef53c3290100000000000000e25d7eaacb625bd47c64f4d8a745718a0034000443167715e8709a1b6227cf1b0100000000000000db8e840e99078eaf04cb3f1a4d7973607f3e54060b8d100a966f370daf9adc8f01000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006b637efb1db7c91b689a3dc0a5e42b0f528e5f31d55b1c264452dda3aa2d83d901000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000004c080000000000000001f1684d0100312100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d01" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index ae2137b4558275ad81ac7ead0df72fb8cbe2f142..98d835b962f2f39e8d440be1c768ce346e09f39e 100644 GIT binary patch delta 5929 zcmcIIeOy%4wr8Ea&tdo)Q9)-wWKao7Oi)xrKoQWiOc6yf6-PM0Br^l^K~9NYGV57s z;fcFbBPH|pNa;nB?dQ8$d0(jA*9TZxzLzC_R9aTvo3Ffv-gV}~i*oPpzJK2DH@{i? zti8VX+H0@9w;VAxe`1uaipxCUK!-e92Df*doGyhwRcm&b%d5>6o73wG|1lGyRHfiJ zjV`gfSYj$M&Wx(JyA&%xZC-h~-EDK>gpxhOTw}JCEAuL|7p9tK=jI9`t;n;P%zhG+ ztJ>@`RhykAjkh9IleKOpNyz)Z$s%-Ro{!TnXO*JZOb*3ruU9J6^yEa*3hXy2Bz9}p z9bz4*X*;9)D$Ni{TVJvM}$OeZ6})|p?4w_;Pgzs`;c3G;v; zNK|M*?@b9YYFg0{XjEqv)!_eYMJcdR{i4W2n*sKyJw?k@z93#a09!39)Qn=2co5X5 zmab4=D^3vK2X!D0CoCL6PXHYB5$|7^C|=S?%GAk=;vrIPDlJoATa*A()F{MFC>c%j zMEFE)tX|27IE;CbT(h!+KvpTqb zHf&Ru*H3{qw&seM;C;Pbgd3OvSH&2wZp}vk?cUEl4cf%g2h&!zfNpjLw1N-?CVOS2 zVyjRbt)L+Vh;r80U3&nciV+HsR%vlKU1imZ8EIMo40rlQ0%SOqa=Wdf|BTQAYL^(J zUVrd8XjPwEI~k*PeC=(}ruMEageEn=Awz5jcIqgJQ=e`~$mswWJ=#4fBh`d|DJa-n zQ)9nhsVLJ7aqb65%kv{NgPa07-rUz52+L+VJtmW6;tCR%QcqP=6b0Fp4+0I}X#PX_cF)gxQiK(}|gS`_5p z`}DK$iTBQCRSfM$t)d`&0_@rcWT<+TrNId`^_l7PB*1(XOwsDY&zu%d0yA|HgZi6o zgJ}=IS~YJ}g8KS4J-rCc*W_xTF_%7Qz*E z!mhc{t2XXhL_vgK*&zq6!^K@0p^^wkvu7wurTX2jJ4E4%+S+PlvR>4)Pou;HWNB@k zC4#74Xq`$VF@i;XNu$;5=Z7YQijbj{S2)dCS@YeiYAoe~5Q-5ZiGm>Lgh7HCch*4*} zGzE<6+LzpPtcdBj{-qh}F!|0M!Q!(bI z!JqVfP(r+q@5jAaNIqs?%D5y{tW=DjI5B-nR#vg4%4T-C9f}|%X}(PN`I3S|s*4vB zMPcksTGRigbz*<5eNaL=^398w=o6H#37VoVYhUh5NrU%T`$Y;l-nU=f7YaG5^^GJk zPxKW?bzVV;n*3d)`iD2}z%uIn(;E-MP!B*xevR4b3|4aibS`@!o1c60GYTH>{r~C0 z(y4yeX$+_se)u67hpq1=;OwFIMiQ|wphD_i6OAHuQTNzw=(Z45Y_}>@@Tg7QHfVVD z*ftqC2K>35dS{(<`L~ln{rL1QpJ1c9<;v$!f8cIn1`z9`C+$M<{N! zfq4+CZn+Q=pndtmVdx|Lump{)u^C2sul#a&-~coy!ks<|Yg;+i7XQqPm%<=O#bctN zOAN5Et4U-Kj~fi*05Nw(!!*ARzB?M;l4Fi8P^v6Wm&5FEW@TkB%+1QGQe4~_2l@VL zW8fbShs&bh8~#Ni9QTh6{QXg&58&D4(V*uf8Daw-YKS8NJwsFA`yhWpDrm)n)s2Pn zfXMI1!j3RVVvl9Q2uR}XnQ*UPvsSGnJ~|t|!2od#&{GJtvc-R22(Dnz_?$VgF2X+{ z_lXA&Ukpn$Ra#`(x+UNbts0+Rr`)#+*s`?eIq!NY$p1$WTfjmzQl{%i*RY#Drt zc+_v;PnhAw;P~!xxE$nNS_O{=J-upyTtAJG#akhZZ(a?H0tlVKWp-eg{odfLg1N^x zIN|BwqVcKqVAR%2TXeSOez*`EKe7fs35@xA4?G-ji_LF_v>?8&5uQX<9P2k0SzqQC z@r;e&!JOwWKMEE!SS#+6*}TUwX*_(<<528(!pN4X5XVn$fj5I|>qB%kfg@l&N5t;~ zV>!y9m}`7~1T5fa@lXY=cz;0;ym*;7bqRvfTG3EZ6z*tT-NG`2QY;ap8eA%RL6A5pa$_^99WJ z=h6S;X~;+a0K+86VTC_ICFJmZKf%v~5x$@krx0jiUxbS+Bh~+zXgPNs$>y_bFPU@`#ybLoFO7i5{X;;-a*Jr zQIte>Mj~f5_^wPQA>4I{Ycn)sOEBsL_l;>?mnY{AvX8fEgQl!0X=Bi@%%H|^(h$)r_t_tD#l z16};f?c{&7&wtVrbL^D&MPO@03!xfxx_PUq(8*aY84}@3!Xf;fIb`<$6j;5KypxVm zp7aDsO9?u&Za>L`ZjO${41`vG{4jY0n`XBBC~;!R>OP8L+rwtPOYDAR3On^K8K3Y^ zIzXQONAhXN;7%A8xORX+(1FfU(aGbEkzq8h8&9wjr969qQfqg(6bByjV|CgQD|E62 z$H_>z%`(ubss~qz9FEXr%2rVZTNZhlgq?D?LUc`LwS|8^IXA)k_kgfro!fwre5xe=_`> zz^+~-p@7+2FJvO$i+BP(hF9(Z^y3DrE&E-0b? z5r6Y%f``owxjnroH}_i-!OO3bd;2KFiR>G?IO;kUhHH};N^x&_m@%GeOLcENouork zwkA=#4lf8%`FKRKSKJWI<8Pz0LXbomOH*-k@~z`(7#hl3CeUlK2%o)&?iZyiAhd_E z?iDniJB#otBNkM!bqbB;UB$FlWW6PH7=*Fd#dHybv)aXU9z?LW7t;!eWJyctGSIV! zme2)s0R4O+gE(<8`*sPP2vIz-lqO^Q!e_6dTL(zJAk>Ak))3Laf2pI#>pI|$Z2M9m1!KSXO0ly9JK zU=pW1Oj}@hjtHXyy)(9okYQ8SxXPU6)k=lCM#zw4%INOWia=Bks=JwY!?S_PW^C9Pxz9T{s3R-cSKys2Zy z;+gNT+bdzVo~_W4yOL+?;pQ3aZu{Nxgd(=*OPV}xk)9eBC{A~cOGg(%1{Q}>eV{sI zV2>w66gnJKDAfzvU87Xbx^-kQ)1RXMx_&tSz%z9c8r+i`Bxu)Dekg_0UmbUBE174;=w+_S+tsH`%SRr3s#! z^!ke54ga)T;w^d`*r_u#nvFP3^Pz)Po~E^f_uqO=6&n3Sy{Bmk7Q5s#^r@7MsK%dP z6r;EaBX~=bya~-gb(=KS?5Ue?B5&$X-sC6OfY_`T@Q2~ZoUIeKu`TE5NcO;4YQ?1T zjl<8;WN2j*&e8EHtv3nY(_io&zu-L@>!WFH{i9MhIzoN-u9hy~$ z+OJpRsgXbV6>Sdb``W}azo#FD!$z+A3*9J!#J2oOpU3)_-b<^sGh_QT+5mgF;kx!b z($1HHbTAZ}xglJNpm2aE4UpRLiG_a@B{j?NKDP{&N+_J*Z^uccG8V1a5z;0RF0&U# zNe{y%o{}U1g-AXoMVd@u3NIfkbrHzp8R^msB3AnoI(9Kn>OuV<&X67iX|4!vVDk#3 z7+yR{D%arz&y~h&W%oj!bkua;RaT3ujE%c4#Y$YaF0z@|@=hp5FsP|K24PWu20K-KC%BGWYp-OQ!#(fDYtgVH?69%m#=2~ za^+GB8S*k%8~HC;iiL#Z$G2`jU?t*aDA z)H1fNKpraRh(&r`A=@=wj-KXwW7R^pvLE?Mlf`MmcU>1g?)idVZnoKN7F-mQ@1@sd zcGa-81+o!VvitHeUly@l`SK)K&OXhTEhI-Yv-|@2u->AN_AODJ-lLEHiS3;!$MW<- zc{POhnc*+alx_Ix!iUU}%SG^cw;g!&J@Q=y`-+uC@>JZ-&lbt~n8~M#WbFo%xIkV% zXb+^B-L7i8!{YLkSt?p#Bg4SV6nKA delta 5293 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 diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index f666e7d267fa5714d4ff4c6d69feb52753cd229b..44d8182bff4164562c7cbffa3e143adf13a4e5db 100644 GIT binary patch delta 5988 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 N`Pb+iu(?y%{{u~*k@Nrn delta 5095 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 diff --git a/artifacts/polkadot_metadata_tiny.scale b/artifacts/polkadot_metadata_tiny.scale index 6e927a2f7116da55dc15de34fdfb128156fdb7bf..1b4363fba0a86e9b94d46d3c55e780dcc58c2a04 100644 GIT binary patch delta 5358 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 U3iAufRzuhIcnCy*80p9U3sFKIng9R* diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index eabf6d160d..00da8d8e66 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -605,9 +605,10 @@ pub mod api { "dry_run_call", types::DryRunCall { origin, call }, [ - 120u8, 205u8, 213u8, 8u8, 235u8, 239u8, 153u8, 40u8, 160u8, 1u8, 74u8, - 107u8, 172u8, 196u8, 102u8, 212u8, 45u8, 171u8, 215u8, 242u8, 98u8, - 29u8, 80u8, 194u8, 142u8, 183u8, 240u8, 21u8, 75u8, 18u8, 60u8, 17u8, + 80u8, 188u8, 47u8, 245u8, 6u8, 36u8, 58u8, 247u8, 61u8, 240u8, 143u8, + 198u8, 59u8, 29u8, 135u8, 138u8, 158u8, 239u8, 205u8, 154u8, 123u8, + 158u8, 118u8, 168u8, 76u8, 89u8, 68u8, 109u8, 218u8, 252u8, 195u8, + 69u8, ], ) } @@ -628,10 +629,9 @@ pub mod api { xcm, }, [ - 169u8, 208u8, 155u8, 170u8, 219u8, 217u8, 203u8, 112u8, 72u8, 82u8, - 175u8, 97u8, 100u8, 90u8, 152u8, 69u8, 214u8, 123u8, 167u8, 162u8, - 163u8, 191u8, 159u8, 153u8, 250u8, 216u8, 53u8, 67u8, 0u8, 230u8, - 129u8, 83u8, + 31u8, 16u8, 49u8, 194u8, 60u8, 85u8, 99u8, 173u8, 196u8, 117u8, 89u8, + 29u8, 106u8, 171u8, 119u8, 91u8, 163u8, 29u8, 239u8, 6u8, 12u8, 187u8, + 101u8, 104u8, 207u8, 170u8, 240u8, 244u8, 142u8, 214u8, 88u8, 229u8, ], ) } @@ -2832,6 +2832,67 @@ pub mod api { ], ) } + #[doc = " Submits an unsigned extrinsic to report a fork voting equivocation. The caller"] + #[doc = " must provide the fork voting proof (the ancestry proof should be obtained using"] + #[doc = " `generate_ancestry_proof`) and a key ownership proof (should be obtained using"] + #[doc = " `generate_key_ownership_proof`). The extrinsic will be unsigned and should only"] + #[doc = " be accepted for local authorship (not to be broadcast to the network). This method"] + #[doc = " returns `None` when creation of the extrinsic fails, e.g. if equivocation"] + #[doc = " reporting is disabled for the given runtime (i.e. this method is"] + #[doc = " hardcoded to return `None`). Only useful in an offchain context."] + pub fn submit_report_fork_voting_unsigned_extrinsic( + &self, + equivocation_proof : types :: submit_report_fork_voting_unsigned_extrinsic :: EquivocationProof, + key_owner_proof : types :: submit_report_fork_voting_unsigned_extrinsic :: KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::SubmitReportForkVotingUnsignedExtrinsic, + types::submit_report_fork_voting_unsigned_extrinsic::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "BeefyApi", + "submit_report_fork_voting_unsigned_extrinsic", + types::SubmitReportForkVotingUnsignedExtrinsic { + equivocation_proof, + key_owner_proof, + }, + [ + 148u8, 230u8, 78u8, 95u8, 219u8, 17u8, 5u8, 8u8, 254u8, 198u8, 252u8, + 211u8, 136u8, 20u8, 103u8, 153u8, 248u8, 144u8, 128u8, 58u8, 96u8, + 140u8, 245u8, 97u8, 13u8, 17u8, 19u8, 35u8, 123u8, 30u8, 24u8, 38u8, + ], + ) + } + #[doc = " Submits an unsigned extrinsic to report a future block voting equivocation. The caller"] + #[doc = " must provide the future block voting proof and a key ownership proof"] + #[doc = " (should be obtained using `generate_key_ownership_proof`)."] + #[doc = " The extrinsic will be unsigned and should only be accepted for local"] + #[doc = " authorship (not to be broadcast to the network). This method returns"] + #[doc = " `None` when creation of the extrinsic fails, e.g. if equivocation"] + #[doc = " reporting is disabled for the given runtime (i.e. this method is"] + #[doc = " hardcoded to return `None`). Only useful in an offchain context."] + pub fn submit_report_future_block_voting_unsigned_extrinsic( + &self, + equivocation_proof : types :: submit_report_future_block_voting_unsigned_extrinsic :: EquivocationProof, + key_owner_proof : types :: submit_report_future_block_voting_unsigned_extrinsic :: KeyOwnerProof, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::SubmitReportFutureBlockVotingUnsignedExtrinsic, + types::submit_report_future_block_voting_unsigned_extrinsic::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "BeefyApi", + "submit_report_future_block_voting_unsigned_extrinsic", + types::SubmitReportFutureBlockVotingUnsignedExtrinsic { + equivocation_proof, + key_owner_proof, + }, + [ + 111u8, 49u8, 126u8, 212u8, 123u8, 116u8, 91u8, 235u8, 190u8, 88u8, + 70u8, 175u8, 50u8, 229u8, 231u8, 241u8, 10u8, 208u8, 107u8, 140u8, + 236u8, 225u8, 78u8, 205u8, 43u8, 218u8, 51u8, 68u8, 236u8, 247u8, 74u8, + 181u8, + ], + ) + } #[doc = " Generates a proof of key ownership for the given authority in the"] #[doc = " given set. An example usage of this module is coupled with the"] #[doc = " session historical module to prove that a given authority key is"] @@ -2865,6 +2926,30 @@ pub mod api { ], ) } + #[doc = " Generates a proof that the `prev_block_number` is part of the canonical chain at"] + #[doc = " `best_known_block_number`."] + pub fn generate_ancestry_proof( + &self, + prev_block_number: types::generate_ancestry_proof::PrevBlockNumber, + best_known_block_number: types::generate_ancestry_proof::BestKnownBlockNumber, + ) -> ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload< + types::GenerateAncestryProof, + types::generate_ancestry_proof::output::Output, + > { + ::subxt::ext::subxt_core::runtime_api::payload::StaticPayload::new_static( + "BeefyApi", + "generate_ancestry_proof", + types::GenerateAncestryProof { + prev_block_number, + best_known_block_number, + }, + [ + 2u8, 159u8, 64u8, 196u8, 142u8, 10u8, 120u8, 189u8, 137u8, 49u8, 163u8, + 103u8, 5u8, 137u8, 190u8, 89u8, 232u8, 17u8, 216u8, 145u8, 99u8, 131u8, + 85u8, 67u8, 75u8, 234u8, 62u8, 61u8, 226u8, 61u8, 187u8, 120u8, + ], + ) + } } pub mod types { use super::runtime_types; @@ -2953,6 +3038,74 @@ pub mod api { pub key_owner_proof: submit_report_double_voting_unsigned_extrinsic::KeyOwnerProof, } + pub mod submit_report_fork_voting_unsigned_extrinsic { + use super::runtime_types; + pub type EquivocationProof = runtime_types::sp_consensus_beefy::ForkVotingProof< + runtime_types::sp_runtime::generic::header::Header<::core::primitive::u32>, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + runtime_types::sp_runtime::OpaqueValue, + >; + pub type KeyOwnerProof = runtime_types::sp_runtime::OpaqueValue; + pub mod output { + use super::runtime_types; + pub type Output = ::core::option::Option<()>; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct SubmitReportForkVotingUnsignedExtrinsic { + pub equivocation_proof: + submit_report_fork_voting_unsigned_extrinsic::EquivocationProof, + pub key_owner_proof: + submit_report_fork_voting_unsigned_extrinsic::KeyOwnerProof, + } + pub mod submit_report_future_block_voting_unsigned_extrinsic { + use super::runtime_types; + pub type EquivocationProof = + runtime_types::sp_consensus_beefy::FutureBlockVotingProof< + ::core::primitive::u32, + runtime_types::sp_consensus_beefy::ecdsa_crypto::Public, + >; + pub type KeyOwnerProof = runtime_types::sp_runtime::OpaqueValue; + pub mod output { + use super::runtime_types; + pub type Output = ::core::option::Option<()>; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct SubmitReportFutureBlockVotingUnsignedExtrinsic { + pub equivocation_proof: + submit_report_future_block_voting_unsigned_extrinsic::EquivocationProof, + pub key_owner_proof: + submit_report_future_block_voting_unsigned_extrinsic::KeyOwnerProof, + } pub mod generate_key_ownership_proof { use super::runtime_types; pub type SetId = ::core::primitive::u64; @@ -2982,6 +3135,35 @@ pub mod api { pub set_id: generate_key_ownership_proof::SetId, pub authority_id: generate_key_ownership_proof::AuthorityId, } + pub mod generate_ancestry_proof { + use super::runtime_types; + pub type PrevBlockNumber = ::core::primitive::u32; + pub type BestKnownBlockNumber = ::core::option::Option<::core::primitive::u32>; + pub mod output { + use super::runtime_types; + pub type Output = + ::core::option::Option; + } + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct GenerateAncestryProof { + pub prev_block_number: generate_ancestry_proof::PrevBlockNumber, + pub best_known_block_number: generate_ancestry_proof::BestKnownBlockNumber, + } } } pub mod mmr_api { @@ -5004,9 +5186,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 15u8, 225u8, 245u8, 255u8, 19u8, 57u8, 201u8, 198u8, 228u8, 47u8, 34u8, 207u8, - 45u8, 103u8, 163u8, 249u8, 15u8, 27u8, 130u8, 228u8, 89u8, 2u8, 179u8, 31u8, 210u8, - 205u8, 199u8, 21u8, 39u8, 64u8, 205u8, 106u8, + 181u8, 152u8, 254u8, 172u8, 141u8, 227u8, 59u8, 167u8, 125u8, 162u8, 198u8, 209u8, + 160u8, 57u8, 51u8, 43u8, 237u8, 206u8, 219u8, 146u8, 253u8, 241u8, 122u8, 23u8, + 97u8, 161u8, 65u8, 161u8, 209u8, 215u8, 85u8, 24u8, ] } pub mod system { @@ -6165,9 +6347,9 @@ pub mod api { "Events", (), [ - 22u8, 13u8, 27u8, 240u8, 21u8, 234u8, 234u8, 76u8, 238u8, 23u8, 186u8, - 68u8, 239u8, 54u8, 186u8, 201u8, 130u8, 192u8, 136u8, 90u8, 136u8, - 234u8, 254u8, 20u8, 69u8, 206u8, 3u8, 48u8, 250u8, 178u8, 222u8, 169u8, + 88u8, 221u8, 93u8, 96u8, 10u8, 166u8, 67u8, 237u8, 228u8, 179u8, 95u8, + 19u8, 85u8, 168u8, 182u8, 193u8, 149u8, 171u8, 37u8, 7u8, 73u8, 18u8, + 127u8, 31u8, 89u8, 202u8, 138u8, 23u8, 43u8, 195u8, 101u8, 217u8, ], ) } @@ -13152,6 +13334,60 @@ pub mod api { const PALLET: &'static str = "ConvictionVoting"; const EVENT: &'static str = "Undelegated"; } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "An account that has voted"] + pub struct Voted { + pub who: voted::Who, + pub vote: voted::Vote, + } + pub mod voted { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Vote = runtime_types::pallet_conviction_voting::vote::AccountVote< + ::core::primitive::u128, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for Voted { + const PALLET: &'static str = "ConvictionVoting"; + const EVENT: &'static str = "Voted"; + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode")] + #[encode_as_type(crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode")] + #[doc = "A vote that been removed"] + pub struct VoteRemoved { + pub who: vote_removed::Who, + pub vote: vote_removed::Vote, + } + pub mod vote_removed { + use super::runtime_types; + pub type Who = ::subxt::ext::subxt_core::utils::AccountId32; + pub type Vote = runtime_types::pallet_conviction_voting::vote::AccountVote< + ::core::primitive::u128, + >; + } + impl ::subxt::ext::subxt_core::events::StaticEvent for VoteRemoved { + const PALLET: &'static str = "ConvictionVoting"; + const EVENT: &'static str = "VoteRemoved"; + } } pub mod storage { use super::runtime_types; @@ -18991,7 +19227,7 @@ pub mod api { #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] #[doc = ""] #[doc = "```nocompile"] - #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "Registrars::::get().get(reg_index).unwrap().fee"] #[doc = "```"] #[doc = ""] #[doc = "Emits `JudgementRequested` if successful."] @@ -19739,7 +19975,7 @@ pub mod api { #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] #[doc = ""] #[doc = "```nocompile"] - #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "Registrars::::get().get(reg_index).unwrap().fee"] #[doc = "```"] #[doc = ""] #[doc = "Emits `JudgementRequested` if successful."] @@ -42623,11 +42859,9 @@ pub mod api { use super::root_mod; use super::runtime_types; #[doc = "The `Error` enum of this pallet."] - pub type Error = - runtime_types::polkadot_runtime_parachains::assigner_on_demand::pallet::Error; + pub type Error = runtime_types::polkadot_runtime_parachains::on_demand::pallet::Error; #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] - pub type Call = - runtime_types::polkadot_runtime_parachains::assigner_on_demand::pallet::Call; + pub type Call = runtime_types::polkadot_runtime_parachains::on_demand::pallet::Call; pub mod calls { use super::root_mod; use super::runtime_types; @@ -42797,8 +43031,7 @@ pub mod api { } } #[doc = "The `Event` enum of this pallet"] - pub type Event = - runtime_types::polkadot_runtime_parachains::assigner_on_demand::pallet::Event; + pub type Event = runtime_types::polkadot_runtime_parachains::on_demand::pallet::Event; pub mod events { use super::runtime_types; #[derive( @@ -42858,20 +43091,24 @@ pub mod api { use super::runtime_types; pub mod para_id_affinity { use super::runtime_types; - pub type ParaIdAffinity = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: CoreAffinityCount ; + pub type ParaIdAffinity = runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: CoreAffinityCount ; pub type Param0 = runtime_types::polkadot_parachain_primitives::primitives::Id; } pub mod queue_status { use super::runtime_types; - pub type QueueStatus = runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: QueueStatusType ; + pub type QueueStatus = runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: QueueStatusType ; } pub mod free_entries { use super::runtime_types; - pub type FreeEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: EnqueuedOrder > ; + pub type FreeEntries = ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::polkadot_runtime_parachains::on_demand::types::EnqueuedOrder, + >; } pub mod affinity_entries { use super::runtime_types; - pub type AffinityEntries = :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: EnqueuedOrder > ; + pub type AffinityEntries = ::subxt::ext::subxt_core::alloc::vec::Vec< + runtime_types::polkadot_runtime_parachains::on_demand::types::EnqueuedOrder, + >; pub type Param0 = runtime_types::polkadot_primitives::v7::CoreIndex; } pub mod revenue { @@ -55568,6 +55805,22 @@ pub mod api { #[codec(index = 1)] #[doc = "An \\[account\\] has cancelled a previous delegation operation."] Undelegated(::subxt::ext::subxt_core::utils::AccountId32), + #[codec(index = 2)] + #[doc = "An account that has voted"] + Voted { + who: ::subxt::ext::subxt_core::utils::AccountId32, + vote: runtime_types::pallet_conviction_voting::vote::AccountVote< + ::core::primitive::u128, + >, + }, + #[codec(index = 3)] + #[doc = "A vote that been removed"] + VoteRemoved { + who: ::subxt::ext::subxt_core::utils::AccountId32, + vote: runtime_types::pallet_conviction_voting::vote::AccountVote< + ::core::primitive::u128, + >, + }, } } pub mod types { @@ -56059,7 +56312,7 @@ pub mod api { #[doc = "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:"] #[doc = ""] #[doc = "```nocompile"] - #[doc = "Self::registrars().get(reg_index).unwrap().fee"] + #[doc = "Registrars::::get().get(reg_index).unwrap().fee"] #[doc = "```"] #[doc = ""] #[doc = "Emits `JudgementRequested` if successful."] @@ -65539,211 +65792,6 @@ pub mod api { )] pub struct WorkState < _0 > { pub assignments : :: subxt :: ext :: subxt_core :: alloc :: 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 { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] - pub enum Call { - #[codec(index = 0)] - #[doc = "Create a single on demand core order."] - #[doc = "Will use the spot price for the current block and will reap the account if needed."] - #[doc = ""] - #[doc = "Parameters:"] - #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] - #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] - #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] - #[doc = ""] - #[doc = "Errors:"] - #[doc = "- `InsufficientBalance`: from the Currency implementation"] - #[doc = "- `QueueFull`"] - #[doc = "- `SpotPriceHigherThanMaxAmount`"] - #[doc = ""] - #[doc = "Events:"] - #[doc = "- `OnDemandOrderPlaced`"] - place_order_allow_death { - max_amount: ::core::primitive::u128, - para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, - }, - #[codec(index = 1)] - #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"] - #[doc = "check that placing the order will not reap the account."] - #[doc = ""] - #[doc = "Parameters:"] - #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] - #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] - #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] - #[doc = ""] - #[doc = "Errors:"] - #[doc = "- `InsufficientBalance`: from the Currency implementation"] - #[doc = "- `QueueFull`"] - #[doc = "- `SpotPriceHigherThanMaxAmount`"] - #[doc = ""] - #[doc = "Events:"] - #[doc = "- `OnDemandOrderPlaced`"] - place_order_keep_alive { - max_amount: ::core::primitive::u128, - para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, - }, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "The `Error` enum of this pallet."] - pub enum Error { - #[codec(index = 0)] - #[doc = "The order queue is full, `place_order` will not continue."] - QueueFull, - #[codec(index = 1)] - #[doc = "The current spot price is higher than the max amount specified in the `place_order`"] - #[doc = "call, making it invalid."] - SpotPriceHigherThanMaxAmount, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - #[doc = "The `Event` enum of this pallet"] - pub enum Event { - #[codec(index = 0)] - #[doc = "An order was placed at some spot price amount by orderer ordered_by"] - OnDemandOrderPlaced { - para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, - spot_price: ::core::primitive::u128, - ordered_by: ::subxt::ext::subxt_core::utils::AccountId32, - }, - #[codec(index = 1)] - #[doc = "The value of the spot price has likely changed"] - SpotPriceSet { spot_price: ::core::primitive::u128 }, - } - } - pub mod types { - use super::runtime_types; - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct CoreAffinityCount { - pub core_index: runtime_types::polkadot_primitives::v7::CoreIndex, - pub count: ::core::primitive::u32, - } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct EnqueuedOrder { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub idx : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: QueueIndex , } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct QueueIndex(pub ::core::primitive::u32); - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct QueueStatusType { pub traffic : runtime_types :: sp_arithmetic :: fixed_point :: FixedU128 , pub next_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: QueueIndex , pub smallest_index : runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: QueueIndex , pub freed_indices : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: assigner_on_demand :: types :: ReverseQueueIndex > , } - #[derive( - :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, - :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, - :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, - :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, - :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, - Debug, - )] - # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] - #[codec(dumb_trait_bound)] - #[decode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" - )] - #[encode_as_type( - crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" - )] - pub struct ReverseQueueIndex(pub ::core::primitive::u32); - } - } pub mod configuration { use super::runtime_types; pub mod pallet { @@ -66383,27 +66431,24 @@ pub mod api { #[doc = "Invalid (bad signature, unknown validator, etc.) backing."] InvalidBacking, #[codec(index = 10)] - #[doc = "Collator did not sign PoV."] - NotCollatorSigned, - #[codec(index = 11)] #[doc = "The validation data hash does not match expected."] ValidationDataHashMismatch, - #[codec(index = 12)] + #[codec(index = 11)] #[doc = "The downward message queue is not processed correctly."] IncorrectDownwardMessageHandling, - #[codec(index = 13)] + #[codec(index = 12)] #[doc = "At least one upward message sent does not pass the acceptance criteria."] InvalidUpwardMessages, - #[codec(index = 14)] + #[codec(index = 13)] #[doc = "The candidate didn't follow the rules of HRMP watermark advancement."] HrmpWatermarkMishandling, - #[codec(index = 15)] + #[codec(index = 14)] #[doc = "The HRMP messages sent by the candidate is not valid."] InvalidOutboundHrmp, - #[codec(index = 16)] + #[codec(index = 15)] #[doc = "The validation code hash of the candidate is not valid."] InvalidValidationCodeHash, - #[codec(index = 17)] + #[codec(index = 16)] #[doc = "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual"] #[doc = "para head in the commitments."] ParaHeadMismatch, @@ -66587,6 +66632,211 @@ pub mod api { pub session_index: ::core::primitive::u32, } } + pub mod on_demand { + use super::runtime_types; + pub mod pallet { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "Contains a variant per dispatchable extrinsic that this pallet has."] + pub enum Call { + #[codec(index = 0)] + #[doc = "Create a single on demand core order."] + #[doc = "Will use the spot price for the current block and will reap the account if needed."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `OnDemandOrderPlaced`"] + place_order_allow_death { + max_amount: ::core::primitive::u128, + para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + }, + #[codec(index = 1)] + #[doc = "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a"] + #[doc = "check that placing the order will not reap the account."] + #[doc = ""] + #[doc = "Parameters:"] + #[doc = "- `origin`: The sender of the call, funds will be withdrawn from this account."] + #[doc = "- `max_amount`: The maximum balance to withdraw from the origin to place an order."] + #[doc = "- `para_id`: A `ParaId` the origin wants to provide blockspace for."] + #[doc = ""] + #[doc = "Errors:"] + #[doc = "- `InsufficientBalance`: from the Currency implementation"] + #[doc = "- `QueueFull`"] + #[doc = "- `SpotPriceHigherThanMaxAmount`"] + #[doc = ""] + #[doc = "Events:"] + #[doc = "- `OnDemandOrderPlaced`"] + place_order_keep_alive { + max_amount: ::core::primitive::u128, + para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + }, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Error` enum of this pallet."] + pub enum Error { + #[codec(index = 0)] + #[doc = "The order queue is full, `place_order` will not continue."] + QueueFull, + #[codec(index = 1)] + #[doc = "The current spot price is higher than the max amount specified in the `place_order`"] + #[doc = "call, making it invalid."] + SpotPriceHigherThanMaxAmount, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + #[doc = "The `Event` enum of this pallet"] + pub enum Event { + #[codec(index = 0)] + #[doc = "An order was placed at some spot price amount by orderer ordered_by"] + OnDemandOrderPlaced { + para_id: runtime_types::polkadot_parachain_primitives::primitives::Id, + spot_price: ::core::primitive::u128, + ordered_by: ::subxt::ext::subxt_core::utils::AccountId32, + }, + #[codec(index = 1)] + #[doc = "The value of the spot price has likely changed"] + SpotPriceSet { spot_price: ::core::primitive::u128 }, + } + } + pub mod types { + use super::runtime_types; + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct CoreAffinityCount { + pub core_index: runtime_types::polkadot_primitives::v7::CoreIndex, + pub count: ::core::primitive::u32, + } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct EnqueuedOrder { pub para_id : runtime_types :: polkadot_parachain_primitives :: primitives :: Id , pub idx : runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: QueueIndex , } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueIndex(pub ::core::primitive::u32); + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct QueueStatusType { pub traffic : runtime_types :: sp_arithmetic :: fixed_point :: FixedU128 , pub next_index : runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: QueueIndex , pub smallest_index : runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: QueueIndex , pub freed_indices : :: subxt :: ext :: subxt_core :: alloc :: vec :: Vec < runtime_types :: polkadot_runtime_parachains :: on_demand :: types :: ReverseQueueIndex > , } + #[derive( + :: subxt :: ext :: subxt_core :: ext :: codec :: CompactAs, + :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, + :: subxt :: ext :: subxt_core :: ext :: codec :: Encode, + :: subxt :: ext :: subxt_core :: ext :: scale_decode :: DecodeAsType, + :: subxt :: ext :: subxt_core :: ext :: scale_encode :: EncodeAsType, + Debug, + )] + # [codec (crate = :: subxt :: ext :: subxt_core :: ext :: codec)] + #[codec(dumb_trait_bound)] + #[decode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_decode" + )] + #[encode_as_type( + crate_path = ":: subxt :: ext :: subxt_core :: ext :: scale_encode" + )] + pub struct ReverseQueueIndex(pub ::core::primitive::u32); + } + } pub mod origin { use super::runtime_types; pub mod pallet { @@ -67583,7 +67833,7 @@ pub mod api { MessageQueue(runtime_types::pallet_message_queue::pallet::Call), #[codec(index = 66)] OnDemandAssignmentProvider( - runtime_types::polkadot_runtime_parachains::assigner_on_demand::pallet::Call, + runtime_types::polkadot_runtime_parachains::on_demand::pallet::Call, ), #[codec(index = 70)] Registrar(runtime_types::polkadot_runtime_common::paras_registrar::pallet::Call), @@ -67708,7 +67958,7 @@ pub mod api { MessageQueue(runtime_types::pallet_message_queue::pallet::Error), #[codec(index = 66)] OnDemandAssignmentProvider( - runtime_types::polkadot_runtime_parachains::assigner_on_demand::pallet::Error, + runtime_types::polkadot_runtime_parachains::on_demand::pallet::Error, ), #[codec(index = 68)] CoretimeAssignmentProvider( @@ -67823,7 +68073,7 @@ pub mod api { MessageQueue(runtime_types::pallet_message_queue::pallet::Event), #[codec(index = 66)] OnDemandAssignmentProvider( - runtime_types::polkadot_runtime_parachains::assigner_on_demand::pallet::Event, + runtime_types::polkadot_runtime_parachains::on_demand::pallet::Event, ), #[codec(index = 70)] Registrar(runtime_types::polkadot_runtime_common::paras_registrar::pallet::Event), From a93667567350447454d29aee1dfb770d349f715b Mon Sep 17 00:00:00 2001 From: Elias Rad <146735585+nnsW3@users.noreply.github.com> Date: Mon, 5 Aug 2024 11:35:23 +0300 Subject: [PATCH 087/137] docs:fix spelling issues (#1699) * Update CHANGELOG.md * Update mod.rs * Update runtime_apis.rs * Update setup_client_custom_rpc.rs * Update subxt/examples/setup_client_custom_rpc.rs Co-authored-by: James Wilson * Update subxt/examples/setup_client_custom_rpc.rs Co-authored-by: James Wilson --------- Co-authored-by: James Wilson --- CHANGELOG.md | 2 +- codegen/src/api/mod.rs | 2 +- codegen/src/api/runtime_apis.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a32260734c..0a9969c80e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,7 +64,7 @@ pub mod polkadot {} #[tokio::main] async fn main() -> Result<(), Box> { - // Create a new client with with a reconnecting RPC client. + // Create a new client with a reconnecting RPC client. let rpc = Client::builder() // We can configure the retry policy; here to an exponential backoff. // This API accepts an iterator of retry delays, and here we use `take` diff --git a/codegen/src/api/mod.rs b/codegen/src/api/mod.rs index 393dccfe04..7a8e8eee2f 100644 --- a/codegen/src/api/mod.rs +++ b/codegen/src/api/mod.rs @@ -262,7 +262,7 @@ impl RuntimeGenerator { /// The outer extrinsic enum. pub type Call = #call_path; - /// The outer error enum representing the DispatchError's Module variant. + /// The outer error enum represents the DispatchError's Module variant. pub type Error = #error_path; pub fn constants() -> ConstantsApi { diff --git a/codegen/src/api/runtime_apis.rs b/codegen/src/api/runtime_apis.rs index 967dfa6b18..0cee13abfd 100644 --- a/codegen/src/api/runtime_apis.rs +++ b/codegen/src/api/runtime_apis.rs @@ -22,7 +22,7 @@ fn generate_runtime_api( type_gen: &TypeGenerator, crate_path: &syn::Path, ) -> Result<(TokenStream2, TokenStream2), CodegenError> { - // Trait name must remain as is (upper case) to identity the runtime call. + // Trait name must remain as is (upper case) to identify the runtime call. let trait_name_str = api.name(); // The snake case for the trait name. let trait_name_snake = format_ident!("{}", api.name().to_snake_case()); From d425f93534918bc7b23d71febe90cc1e93c94152 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 11:54:08 +0300 Subject: [PATCH 088/137] build(deps): bump trybuild from 1.0.98 to 1.0.99 (#1701) Bumps [trybuild](https://github.com/dtolnay/trybuild) from 1.0.98 to 1.0.99. - [Release notes](https://github.com/dtolnay/trybuild/releases) - [Commits](https://github.com/dtolnay/trybuild/compare/1.0.98...1.0.99) --- updated-dependencies: - dependency-name: trybuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 43b8520434..d169e9dba9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5490,9 +5490,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "trybuild" -version = "1.0.98" +version = "1.0.99" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55265878356bdd85c9baa15859c87de93b2bf1f33acf752040a561e4a228f62" +checksum = "207aa50d36c4be8d8c6ea829478be44a372c6a77669937bb39c698e52f1491e8" dependencies = [ "glob 0.3.1", "serde", diff --git a/Cargo.toml b/Cargo.toml index 9b67061308..5a1d1a1755 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -107,7 +107,7 @@ tokio = { version = "1.39", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" -trybuild = "1.0.98" +trybuild = "1.0.99" url = "2.5.2" wabt = "0.10.0" wasm-bindgen-test = "0.3.24" From 3b72365d5e870962f3518963cb27891820d21fe1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 11:54:24 +0300 Subject: [PATCH 089/137] build(deps): bump serde_json from 1.0.121 to 1.0.122 (#1702) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.121 to 1.0.122. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.121...v1.0.122) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d169e9dba9..9e1c0634fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4096,9 +4096,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.121" +version = "1.0.122" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab380d7d9f22ef3f21ad3e6c1ebe8e4fc7a2000ccba2e4d71fc96f15b2cb609" +checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index 5a1d1a1755..ff619901b3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,7 @@ scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" serde = { version = "1.0.204", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.121", default-features = false } +serde_json = { version = "1.0.122", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" tokio = { version = "1.39", default-features = false } From c35fb52c73053ef93b5c07800e317f30529c259a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 11:54:44 +0300 Subject: [PATCH 090/137] build(deps): bump regex from 1.10.5 to 1.10.6 (#1703) Bumps [regex](https://github.com/rust-lang/regex) from 1.10.5 to 1.10.6. - [Release notes](https://github.com/rust-lang/regex/releases) - [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/regex/compare/1.10.5...1.10.6) --- updated-dependencies: - dependency-name: regex dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9e1c0634fb..7153c30e89 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3525,9 +3525,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.10.5" +version = "1.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f" +checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", diff --git a/Cargo.toml b/Cargo.toml index ff619901b3..ab258b4551 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -91,7 +91,7 @@ primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" proc-macro2 = "1.0.86" quote = "1.0.36" -regex = { version = "1.10.5", default-features = false } +regex = { version = "1.10.6", default-features = false } scale-info = { version = "2.11.3", default-features = false } scale-value = { version = "0.16.1", default-features = false } scale-bits = { version = "0.6.0", default-features = false } From 6b5b25db265a820bb77d7791710ddeafec7b9ce7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 11:54:53 +0300 Subject: [PATCH 091/137] build(deps): bump clap from 4.5.11 to 4.5.13 (#1704) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.11 to 4.5.13. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.11...v4.5.13) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7153c30e89..79d256b1fa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -869,9 +869,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35723e6a11662c2afb578bcf0b88bf6ea8e21282a953428f240574fcc3a2b5b3" +checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" dependencies = [ "clap_builder", "clap_derive", @@ -879,9 +879,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49eb96cbfa7cfa35017b7cd548c75b14c3118c98b423041d70562665e07fb0fa" +checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" dependencies = [ "anstream", "anstyle", @@ -891,9 +891,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.11" +version = "4.5.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d029b67f89d30bbb547c89fd5161293c0aec155fc691d7924b64550662db93e" +checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -4885,7 +4885,7 @@ dependencies = [ name = "subxt-cli" version = "0.37.0" dependencies = [ - "clap 4.5.11", + "clap 4.5.13", "color-eyre", "frame-metadata 16.0.0", "heck 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index ab258b4551..aae32ab408 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,7 @@ assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } blake2 = { version = "0.10.6", default-features = false } -clap = { version = "4.5.11", features = ["derive", "cargo"] } +clap = { version = "4.5.13", features = ["derive", "cargo"] } cfg-if = "1.0.0" criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } From 0cd63ba9797e842db6ae3cce33749d515ef2e382 Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 12:01:16 +0100 Subject: [PATCH 092/137] Update Artifacts (auto-generated) (#1700) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> --- artifacts/demo_chain_specs/polkadot.json | 8 ++++---- artifacts/polkadot_metadata_full.scale | Bin 420501 -> 420501 bytes artifacts/polkadot_metadata_small.scale | Bin 103661 -> 103661 bytes 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 0941292ba8..f4dd5c20c4 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x04a2d890ee82166f7952562a558d815fe6cef0b6362bf7811409c57c5ea82385bc87544d0101f3c41b110000000053ce1b11000000000445df1e3f57ad05f71fe17afe3cebed1aefa1b2166bb23dda0a8f2b608f71d789da5d4d010153ce1b1100000000b3d71b1100000000089e1e60c6dec618234076aca035411e3b6fa11166311f1cee930fe888c207af5c33674d0101b3d71b110000000013e11b110000000000142e86b1d337e39a88ee7d00ce97ce4d3f4b4c1aa34bcfe2b8d195d812bdfaaa33674d0101b3d71b110000000013e11b1100000000000010142e86b1d337e39a88ee7d00ce97ce4d3f4b4c1aa34bcfe2b8d195d812bdfaaa33674d0101bb23000000000000b3d71b11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff08010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a7101000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000003a4a5b046c4b65c5a634c2ed909630384f543c66f59d0f4e9ece2e17e85b51700100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d93319300100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fefbf49831755894c16df273cb88a249d5995414190928c8ef5116f2a7d2592a0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b20971101000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a5003010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f0100000000000000246b0b8a8677b1a638cbcd7e8d69e1fbed9d92d62509236471464edb3170fe50010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000007f0c84abfd55473ff57e7d011c3914b545eb7e21a03693ccf894cf48d5071e0d010000000000000004000000000000000245df1e3f57ad05f71fe17afe3cebed1aefa1b2166bb23dda0a8f2b608f71d789da5d4d0101ba2300000000000053ce1b11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff08010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a7101000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000003a4a5b046c4b65c5a634c2ed909630384f543c66f59d0f4e9ece2e17e85b51700100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d93319300100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fefbf49831755894c16df273cb88a249d5995414190928c8ef5116f2a7d2592a0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b20971101000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a5003010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000a0a148a4317cb65cd79e698933220eb6c939e6ab2320cde67234c91069183e5101000000000000000400000000000000029e1e60c6dec618234076aca035411e3b6fa11166311f1cee930fe888c207af5c33674d0101bb23000000000000b3d71b11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff08010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a7101000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000003a4a5b046c4b65c5a634c2ed909630384f543c66f59d0f4e9ece2e17e85b51700100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d93319300100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fefbf49831755894c16df273cb88a249d5995414190928c8ef5116f2a7d2592a0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b20971101000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a5003010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f0100000000000000246b0b8a8677b1a638cbcd7e8d69e1fbed9d92d62509236471464edb3170fe50010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000007f0c84abfd55473ff57e7d011c3914b545eb7e21a03693ccf894cf48d5071e0d0100000000000000040000000000000002a2d890ee82166f7952562a558d815fe6cef0b6362bf7811409c57c5ea82385bc87544d0101b923000000000000f3c41b11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000056471f7f5a936d621b95618e47258a382076b7c44d8c7d5fc69a87255a8eff08010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000dea45928c52ae29d6674c6c3ddb42ec457d3d3f4332cb0707c5c9d8e578af9270100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a7101000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec3265401000000000000003a4a5b046c4b65c5a634c2ed909630384f543c66f59d0f4e9ece2e17e85b51700100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c178390100000000000000d8b38c77823eb1912bf8b743cca6c655ea1844ee468fbd78b394bf222bf8bc2001000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000018ec239eec5457ba11a41518e7c5f98266d1bdbd67602641d04706f95dba5c560100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000048116cd15d71ca9ad2be65501c46333db7261991b446bf9f711b6a0df798e540100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a1034472001000000000000004628f93047462b43ec0886f2c7d7318ddad1764fd32af4f32ef0b2dcfa4b297a010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000dafd1b81e8401d6715a61ca7c3d32920b24cd28a8708ecdb65b5e7c557d14c440100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b140100000000000000904c50c29080ce992b25f8484a916f18f025c16b9dde0b322377e619de2edb00010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000084a7633f080e6223b983763cc426583d4bd923709b327a38e5ebf4167f6767770100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea84001000000000000001cdcbae0de1e2be6288b7bdb0837bdba849f0c93e86b21d8f8f7d425d93319300100000000000000bac951befedd6b3d0acd6c3f02b0b73f4393a8f9a95c44503ebdf1667e4920060100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b0100000000000000e06ce8011337c9f261f1b1526ada18dd8bad52311b237e4c3f6ffdbc3071766e01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000d0389974c754c672124ce98f5d49f4582fc60aae5fec560b5c332a07d835412d01000000000000004cb98af1a70e917453f5dea682917e7b3077ea9d41dda7764433258a9d5db54b0100000000000000c6856d6e331bb8f1dfe061d4fd679115a6513926be52de2297fdd60a699b633501000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fefbf49831755894c16df273cb88a249d5995414190928c8ef5116f2a7d2592a0100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000fe24bd4f4b0e75ff21dcf16a3ccba49556cfa9586348a8f939df8def8a214c0d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000143e1a5f988c4ebefd5869c0843c1e4f4c2cce282cb826b8b45aaa6f6f4ccc340100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000903a9c075e18ce1dab05b52026ad4aabf0b92e4d0b27a7c298704486097fe44f0100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000c686fbbc968476537924f90aaa4993eef8314685d150228c462f8ae4e5e1e57f01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a8370100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000003acd553f0ec1402989966b408bf5ea9a4d5cea17bfd5f7d3237f0702627a3c2301000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd78010000000000000042caa17d82d1cb242e19157e6f125401cb45fc4dc05ed877c6ce51826c72c440010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b20971101000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000088542443998d88a092cf75e7784388c6cf71c71ceab04f16fc0114b2bf2dc132010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a5003010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b0100000000000000204791fdb49af594e5b04e0f26492e56ad8ef4cc8533245609d10e66c340302e010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c99600010000000000000098f7988d5a74a0e52f58dd3d232ac3e93ff757480db9d4c12761b04fef032c46010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb556877010000000000000012bfb35bdbc174f07745b29eb649c6c896fa7f38b13a728fedc4a4853a75014e01000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c010000000000000076311c1a3fefd3236e3977ef9f78ad450ca34945e72a4e80f66cd1ed29301e6101000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b62010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000008e2841b890c2629a188e5c259b19247f36d8343e4b08900dc845e41e897cf43e010000000000000052add6e82367acf14eb6bba76b60b8bbe010dd1a58d62ed7814d1c385467a27301000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b053010000000000000096776e9dad14b2ece6fcddc7ee29a19c27f7d7baddf3e02a493a332d90b4020c0100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000fb8449bb17526fa44e5ff3974a968ebc5e85fcce154981e9876766f24c0c066b0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5455096, - "finalizedBlockHeader": "0x95ba990172662150791fe98c02275b4755873cb7c842997faa2a57fc4f04cee1c6a335051068834843dc084806abf87e897fb832bc9d291c90a5d91ef1ea9670aafe84db0eaa3ea0c8a1ffbbc5bfc1813ecf44d7bda065432ceeeeb28af61e916b674fc20c0642414245b501012b00000014d01b110000000074a7f84781b8f4f3b32beb82001a9d1b988c1275d821193993aa1e2a5e3a4f513354b4ea783f2630041b546dd18e68a6017629e8b7c67b6d50af481cbc029408647c2c86356dc8da64b924bcb35327226688d66e7338eef93ce0bbee90373d0f0442454546840379f36714f58411d0f92df241ef927a8f57a301f0d06b32c680bd82d61c65fc030542414245010154ac14ddb1a5d857592350340d904fa3ec2d9d551c6f0c04b05a5c6d70b3f547d8175815ba865867cee3eabd2bb92a7a0e16a14505cab12f7e83c65845fb2b85", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e010000000000000096ba2b1e94ac833ccba36c714518d6c14166f3726a0470c0c7b2bde962bf9d550100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec8010000000000000005f2a5fa89d67c11407b3cde00fb2b4482a40459800e16fa108f209456dcba4401000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000c406ffbebce8cdece918edf454d780aa298c8134a8f73848c856a9bc00c4b1b10100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b290010000000000000038ceeb0f56937fee55d1fe88c352d87a07941faa5c6539075cf7a328dc6f3bc8010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000799363fc98b936b54755c8532ae88418a28c3ba30666e6e68dd57dd0ad80c00d0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f810100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000058e304af91397247f704ce95d60845629aa59a50fba1c13896bb2300708db47201000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b58010000000000000005197187ac7eb8d0a3cfadd32f1a7fb662e7e4a16ea718af3f1e4437b865205b01000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000007c077f9fbba618995d7df802a578934d36a5c0bec16dfcbaa7bce3879b4c44ce0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f9401000000000000004a68c3ada00a5c4248e74840b836cdb87eec6adbf99dabbb90a8ded6e04de6c60100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b0100000000000000700f01e62a9c97bb86cb5bbb57ac20c74af3695fcef14ebea1f133d3a9253cc701000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000086cddc46c9a3a42c3821183d597e76872f1d4904b84a92e8160ab4e0fb4d39a8010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000d50555d709e293864d91ca77494a0424d842151c92d74f8ee08b52d65d11cddb0100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000aa674be249403288a8078e209231e764e3679f2f66a1070ea5d9b5b420fc53ab0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000e5df12b672ff723fb3a00817d48fa27843bc7854328dfed88bb0e4afed20b65a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000293ec1101d6cc9df89a04ede0ac8ced7418803cc1d52a36ca8e45cca734388f90100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb010000000000000090c47bdd7fcfa4f8ad90f21b09e45cc97ed7c8313f3d6e09e055c2b2d3fd277c0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b5092129070100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000068a8e1ed303440fb10c05a39e73361bf01f4137d5573d517df902645884ed240100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef390100000000000000c180ac4896d030d199247131f3aca75e70e2319e279d6d63cbaa6bc91bc6da4b01000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000e0c32c0314862bd3897796069a8b781ed1fe1a375575a8fe7b8c468f620c77a20100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb01000000000000005c3476954f173e1be823259907f3fd4bdb2b534d090ea5b7b2b3ac03403a80820100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d01000000000000005667d5ab2b7b56ad406d51dc657f573e65bc1fa542fc3ff43793a487af92aab6010000000000000043f0c689c19f75362242c2412fb65e09598d58b8b005f5044dfba06d463e6f8c01000000000000008077fd93f4073cf25aef527807c9ce1d5c02c447edeec07b02bc52f139f8c7730100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c5901000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa064901000000000000008118d80425d3b1fb332be3b1d02e6456b8ff7fa7414ef940c36c1e8e3262766b0100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af01000000000000008ad2a4c25ba87cadf77dccde3a56ac8387fb01a6e84d2dac43927f163e7ca0bf0100000000000000982d9e3cc8ef3f8d99638b6f9df32c82356e1cd88f123d1e586a604d1d4b0cb40100000000000000bf5bcb77f207f4ddd9317abdf61e6ca2158cd565e7fa6133f6792236e086c166010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000cb5e02d81a588aa9a272a673c85003806bacb7c559e49fd38be111af308019aa0100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000349eedde437fbbe2d174500d1de344a9a906946d311aeb499f46debf701586001000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000bb7045a8da399663f16cc865bc2406716150aa804da56ddbabaad386064acdad0100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace10100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a8abb971b10439867351b3b23ad968edebee7dc255f0414cd20c60507909861a010000000000000037cf0e2296974765b587766e6f36c0b98f69c1698d0af2f8c3490841509ccedb01000000000000004e9fa37851f580bbd096fc81f5aa28df78d0c8f0f70963121785cd5095a8d9630100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f549e094ce2c081069b7a39b67a13a00899882b79ed9ce8c63b2599cbb0900950100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac96590100000000000000e793c0578be40676ea7aafc611a54c214f6694253ade9652a3f1364823042d6e01000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf010000000000000049db9652c265135c10af93c19c3dbc35c72c1aa32b64a2614559de921be7c2a301000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f36359092840010000000000000045f84b0909eb669ce3d2099a935e269d6ebb091f1f8055fbfcf07d6efe7f43ab01000000000000004f7d68f733bb0699f0a1d85f331e073ebec15f6663c17179753f7f38abf3331701000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f0100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000025902a5eea68f7b0d1852f3292c8464f44aa9ad35e62b29fea99c172c8ec00e3010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a02401000000000000001773a9984bd619d4469608aeeb38a98e688474cf0870a45ced8d297ba56275be0100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a59010000000000000099db3968f4b18d8976ae0071a375c5aa49c415a8d988cc18af8dcace497b96250100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e10100000000000000e7eb7de26e0e24fd528fbbcecf837f26579784dfd4db512c9237e281113973870100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000b14d7eb2d5f956e23a7407b7cc5ba971171d0ac45169351ccc6f836c9ae796730100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000e38a7e0b1d2bad01565b8536e0851dd4daabdcf5a4ab415eee0357082d95d3550100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b01000000000000001a6cdb9906d5861bf1101aa5a8816a25be63b460843c13065760d0e9bd5a2f60010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a40100000000000000a4f4bbd302c06389ee3614c0943af03d52364f172ef05021aa93d12aef53c3290100000000000000e25d7eaacb625bd47c64f4d8a745718a0034000443167715e8709a1b6227cf1b0100000000000000db8e840e99078eaf04cb3f1a4d7973607f3e54060b8d100a966f370daf9adc8f01000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000006b637efb1db7c91b689a3dc0a5e42b0f528e5f31d55b1c264452dda3aa2d83d901000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000004c080000000000000001f1684d0100312100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d01" + "babeEpochChanges": "0x0480960379f99619549af3b2bae9c82c532a0d04abce4228d6ea44e27494e4f5791ddc4e0101b34e1d110000000013581d11000000000439d6d45ec077345031eefc8ef56f1468e64c6e28f44999e23e235ee55b3680f170e54e010113581d110000000073611d11000000000c2f9e4e26ec9d9019349e6cde3d7bae5f20a1d0a2ad337aedd6cccdee3e723748c0ee4e010173611d1100000000d36a1d110000000000813a1ee9557c632286f9bb6b83a83dfd070ec2abbf96adaae5309537eca296b2c0ee4e010173611d1100000000d36a1d1100000000002d6aa3908bf10f348db5eb895cd9b72cd2d2416fbc5fe2e15b58a85035036d0cc0ee4e010173611d1100000000d36a1d11000000000000142d6aa3908bf10f348db5eb895cd9b72cd2d2416fbc5fe2e15b58a85035036d0cc0ee4e0101e52300000000000073611d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000002525a23e84251b2fcb3db171a2366077fe92a934c343b25678bcb682b0ed1df201000000000000000400000000000000022f9e4e26ec9d9019349e6cde3d7bae5f20a1d0a2ad337aedd6cccdee3e723748c0ee4e0101e52300000000000073611d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000002525a23e84251b2fcb3db171a2366077fe92a934c343b25678bcb682b0ed1df2010000000000000004000000000000000239d6d45ec077345031eefc8ef56f1468e64c6e28f44999e23e235ee55b3680f170e54e0101e42300000000000013581d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000007975e467a644f13b1486dee9868046b9e64da54adf5f9f87f858829d8d45d9c5010000000000000004000000000000000280960379f99619549af3b2bae9c82c532a0d04abce4228d6ea44e27494e4f5791ddc4e0101e323000000000000b34e1d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000017842c1e191d88055f447994e5523fbf288f547db1ab3ba436d733e4cdb5f1ba0100000000000000040000000000000002813a1ee9557c632286f9bb6b83a83dfd070ec2abbf96adaae5309537eca296b2c0ee4e0101e52300000000000073611d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000002525a23e84251b2fcb3db171a2366077fe92a934c343b25678bcb682b0ed1df20100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5480086, + "finalizedBlockHeader": "0xab76e4126462c0bb40b89c08139794200624b3e8a304668f3af8488ee952060b0ac23b05f63365e51193dbc5e6c9b1fe5dc15749a699bec6893d39e0fecb0a7469bebfc6e34d1aa9c3a04b13257c94c228ab845cf56fb1c0527a164a0b83b9320a90b9980c0642414245b50103dc000000d6591d110000000014589279de3e5b25fe6ec57e2fe7cd87add33a9de8d792c7ed62d4f9a91bc33ca3dd4d1716a4c604c5c54706f18a9ee94ed383982151b2e0d1604848ffedeb0d4204a6070068368644ff7bfbd6c80001cba43add55e4ad44ba448e12aec51e0704424545468403a912f839c08293835299efd9bcb57f34893070f106394b6f9c1dbb95061096380542414245010130b73eff375cd24f2ffe4eb14d444e8b58656e7b60fedb35529ae33d10ca68424368e7db558d4f80194dbcfec73c22dfd940252186b788f7d35d2f639ff8c482", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f420100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec801000000000000005646da1fdd62a7a67010d38b2cca5fda0955a92bd9ac37d2f2ba77ac0895f4fb01000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a501000000000000009ad71d6ddd5a135c79baa827b738cae1ffa198a0a85246ba0b676ea12bdeba7b0100000000000000bc08c197f7281aebdbd1dad6c2b02a6831ee8b5320745f9be57eb2a1f1b0fa9f0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000bb60743c9aa7dcc48846b6dc1d95923d34e62dc184d9e4d99f0a8de40e8ba3b8010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b290010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf01000000000000007de9970a903513e5e8d0429c3671130008fc950d6d02c31d3b1746b6d839f39e0100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da81010000000000000010a50acde267a82fe4ce8bd482edfde9d63edee111511b56ff4c4c28f57046fa01000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000007a99eb5f9dd892ab541176abfcb3a9b87e184c9f5737f0c1e69b90f62c522aef0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000000074497472b01dc3a0c379b9622ca2579b14b0ae540e10ad655afdbf8bb1d2490100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008bdbdbeb92302e77649c730eed64efac417dde56810bb59588f31081c2dcef4301000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000007c077f9fbba618995d7df802a578934d36a5c0bec16dfcbaa7bce3879b4c44ce0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000600e433183aa04247203b358cbdb99116a3c5d6a3c4b2692487a2b3791de004d0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000000a78114972d0d627bf3e6a0d42be67a6a9b0383b38b19c0a4b8d94680314b7e801000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000002b7b893e884f4d9c99a3a154b78cfa4b461422860537fa77d064dbd0de4e0a8a01000000000000004d04ebdd4185dee9609536d870ba5d984a6fa435aeb1fb611c4de06d57345b7a01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000487da9661496aad61869534fe7397d6b1aa1786f4d587137005c0e7b4dc4c1cb010000000000000098237d7b68db1bb6e79c5174523a8806a88fe0fe427b40199b984216800517d30100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000048630433999edabfc2790d3f5cf47a5ae499e2fdc3c4a9abc04a98da29c368b60100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003ab5af195d3e54bba57e395b1b69920bbee9a5169aa1ee8ed0ab97422528e9490100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b0100000000000000f5ed118038230c29a138443aa6772e24aad7567226d6dd98e5596856a98166c9010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000068a8e1ed303440fb10c05a39e73361bf01f4137d5573d517df902645884ed240100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee2497010000000000000048abc177ef2dc1e206d615c9c028afb9a58588cb25f893d517ade4fa9c0dc26a0100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000cdf28bc59aab771bc1450c9fa1b61f67c276511223a2aba191c33ebf017d91190100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d01000000000000008077fd93f4073cf25aef527807c9ce1d5c02c447edeec07b02bc52f139f8c7730100000000000000fb267d8f26a35c34d58b4dc0633cf56f5eb6882ec873270dfbb0e55c64404dc101000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000fbd06da169daa41936401cd54d06ecb61cf722e3e1d34a9ac048d0c800014d5f0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000d3446b94b38255ea7a70f84e52f0f167cb5ebd82a3c0f31498bbf2b24ae3a9650100000000000000147db701e00ffe84da179a84aab9c3653deb77e8ee867358e1035df1bc58f862010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000532bc96e942be9de9214f40c9d221fb9235856f6a781a8be0161acf804b4dbe40100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000bb7045a8da399663f16cc865bc2406716150aa804da56ddbabaad386064acdad0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b0100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b0100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000007e11db40409c32a4261679bc520ee8ce4af31944d19b1faf2158299e905e72801000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a601000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000cc7e024990cfcb38b700cfdb5ad0c66d9dc49c94a3ebc26aecb98b3d298f1b1d01000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000c96f4bcdb9d46096e4e60da9acce9c761463ff38563368feddfccab6135923ad01000000000000005c0ce76a2fbef3a0df89ae8c2bedac4e288c3679c33701980624c9ffcca9103b0100000000000000aae265f73abaf1fdfc01a798c357cddeb8467caae251b123ea3ecd94a6f2d9bf0100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b385010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000004655b8a8e7f4e3532b7aa5e461d25ca6d5af49e0557da59654d15fe1d1eda4c010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e61180210379701000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c80100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b1901000000000000002d12330b8029ef13e02675c6df0e10c6fdbc10e974803730866e603305ff4471010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb01000000000000006a536f056479ef8f567471f1859757e3bb6284d4ce04319356eb2d6f5de119710100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000007104becc86b2517ee166201faadeec93e4150bbde0fed50e99f68f427f5af8780100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b01000000000000000ea1cd7154cd4d50d009d8db3d6d40897d9170ff97e6493c8d0dd2ca74582307010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a4010000000000000098c77f59e959418f0817c0fb327b8790c4fb0f8068a1c01fa8620db63e1cb3e801000000000000007d62c0b3dc3697b9adf2065032a236d0f6d926c086977dd6339ab02489a684a201000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000005808000000000000000182f04e0100612100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e01" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index 98d835b962f2f39e8d440be1c768ce346e09f39e..f2d57ad66574925413b86f290545a39e3b952ea8 100644 GIT binary patch delta 30 mcmbPwRdVW8$%Yoj7N!>FEi7z*nQqjybNpr5&heMEHx~fHs|FEi7z*nLbpsbNpr5&heMEHx~fIpA3lr diff --git a/artifacts/polkadot_metadata_small.scale b/artifacts/polkadot_metadata_small.scale index 44d8182bff4164562c7cbffa3e143adf13a4e5db..710d8ca1a098abc897a7a2d1591cc4c53af0bcc0 100644 GIT binary patch delta 20 ccmaF6lI`tEwuUW?!iG#YYPO3SGTulA0AAz>K>z>% delta 20 ccmaF6lI`tEwuUW?!iG#ADz=LnGTulA0AGj*RR910 From f1c59710f023b55a9a05842f69aa53c824a65b6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 12:43:54 +0300 Subject: [PATCH 093/137] build(deps): bump serde_json from 1.0.122 to 1.0.124 (#1708) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.122 to 1.0.124. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.122...v1.0.124) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 79d256b1fa..86774b092d 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4096,9 +4096,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.122" +version = "1.0.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "784b6203951c57ff748476b126ccb5e8e2959a5c19e5c617ab1956be3dbc68da" +checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index aae32ab408..517ff872cb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,7 @@ scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" serde = { version = "1.0.204", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.122", default-features = false } +serde_json = { version = "1.0.124", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" tokio = { version = "1.39", default-features = false } From a2b2142a021f19aa0d070abffdda26b9c2067ae3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 14:21:56 +0200 Subject: [PATCH 094/137] build(deps): bump serde from 1.0.204 to 1.0.206 (#1709) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.204 to 1.0.206. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.204...v1.0.206) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 86774b092d..08db1a0bf2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4067,9 +4067,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.204" +version = "1.0.206" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12" +checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284" dependencies = [ "serde_derive", ] @@ -4085,9 +4085,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.204" +version = "1.0.206" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222" +checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index 517ff872cb..5ffd157059 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -99,7 +99,7 @@ scale-decode = { version = "0.13.1", default-features = false } scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" -serde = { version = "1.0.204", default-features = false, features = ["derive"] } +serde = { version = "1.0.206", default-features = false, features = ["derive"] } serde_json = { version = "1.0.124", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" From cc1610b3bf0448fe7e40df786ad63e3cc5228c58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 14:22:12 +0200 Subject: [PATCH 095/137] build(deps): bump scale-value from 0.16.1 to 0.16.2 (#1710) Bumps [scale-value](https://github.com/paritytech/scale-value) from 0.16.1 to 0.16.2. - [Release notes](https://github.com/paritytech/scale-value/releases) - [Changelog](https://github.com/paritytech/scale-value/blob/main/CHANGELOG.md) - [Commits](https://github.com/paritytech/scale-value/compare/v0.16.1...v0.16.2) --- updated-dependencies: - dependency-name: scale-value dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 08db1a0bf2..db7d66ff5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3917,9 +3917,9 @@ dependencies = [ [[package]] name = "scale-value" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ab68da501822d2769c4c5823535f6104a6d4cd15f0d3eba3e647e725294ae22" +checksum = "ba4d772cfb7569e03868400344a1695d16560bf62b86b918604773607d39ec84" dependencies = [ "base58", "blake2", diff --git a/Cargo.toml b/Cargo.toml index 5ffd157059..1a8201f8fd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -93,7 +93,7 @@ proc-macro2 = "1.0.86" quote = "1.0.36" regex = { version = "1.10.6", default-features = false } scale-info = { version = "2.11.3", default-features = false } -scale-value = { version = "0.16.1", default-features = false } +scale-value = { version = "0.16.2", default-features = false } scale-bits = { version = "0.6.0", default-features = false } scale-decode = { version = "0.13.1", default-features = false } scale-encode = { version = "0.7.1", default-features = false } From 5a845074c4567646c9c619a9191e02f7931dbb96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 14:22:31 +0200 Subject: [PATCH 096/137] build(deps): bump clap from 4.5.13 to 4.5.15 (#1707) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.13 to 4.5.15. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.13...v4.5.15) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Alexandru Vasile <60601340+lexnv@users.noreply.github.com> --- Cargo.lock | 14 +++++++------- Cargo.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db7d66ff5b..509e483101 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -131,9 +131,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anstyle-parse" @@ -869,9 +869,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.13" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fbb260a053428790f3de475e304ff84cdbc4face759ea7a3e64c1edd938a7fc" +checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" dependencies = [ "clap_builder", "clap_derive", @@ -879,9 +879,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.13" +version = "4.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64b17d7ea74e9f833c7dbf2cbe4fb12ff26783eda4782a8975b72f895c9b4d99" +checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" dependencies = [ "anstream", "anstyle", @@ -4885,7 +4885,7 @@ dependencies = [ name = "subxt-cli" version = "0.37.0" dependencies = [ - "clap 4.5.13", + "clap 4.5.15", "color-eyre", "frame-metadata 16.0.0", "heck 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index 1a8201f8fd..ecc3491907 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,7 @@ assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } blake2 = { version = "0.10.6", default-features = false } -clap = { version = "4.5.13", features = ["derive", "cargo"] } +clap = { version = "4.5.15", features = ["derive", "cargo"] } cfg-if = "1.0.0" criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } From 90b47faad85c34382f086e2cc886da8574453c36 Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 13:44:32 +0100 Subject: [PATCH 097/137] Update Artifacts (auto-generated) (#1706) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> --- artifacts/demo_chain_specs/polkadot.json | 8 ++++---- .../integration-tests/src/full_client/codegen/polkadot.rs | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index f4dd5c20c4..5aede1066f 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x0480960379f99619549af3b2bae9c82c532a0d04abce4228d6ea44e27494e4f5791ddc4e0101b34e1d110000000013581d11000000000439d6d45ec077345031eefc8ef56f1468e64c6e28f44999e23e235ee55b3680f170e54e010113581d110000000073611d11000000000c2f9e4e26ec9d9019349e6cde3d7bae5f20a1d0a2ad337aedd6cccdee3e723748c0ee4e010173611d1100000000d36a1d110000000000813a1ee9557c632286f9bb6b83a83dfd070ec2abbf96adaae5309537eca296b2c0ee4e010173611d1100000000d36a1d1100000000002d6aa3908bf10f348db5eb895cd9b72cd2d2416fbc5fe2e15b58a85035036d0cc0ee4e010173611d1100000000d36a1d11000000000000142d6aa3908bf10f348db5eb895cd9b72cd2d2416fbc5fe2e15b58a85035036d0cc0ee4e0101e52300000000000073611d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000002525a23e84251b2fcb3db171a2366077fe92a934c343b25678bcb682b0ed1df201000000000000000400000000000000022f9e4e26ec9d9019349e6cde3d7bae5f20a1d0a2ad337aedd6cccdee3e723748c0ee4e0101e52300000000000073611d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000002525a23e84251b2fcb3db171a2366077fe92a934c343b25678bcb682b0ed1df2010000000000000004000000000000000239d6d45ec077345031eefc8ef56f1468e64c6e28f44999e23e235ee55b3680f170e54e0101e42300000000000013581d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000007975e467a644f13b1486dee9868046b9e64da54adf5f9f87f858829d8d45d9c5010000000000000004000000000000000280960379f99619549af3b2bae9c82c532a0d04abce4228d6ea44e27494e4f5791ddc4e0101e323000000000000b34e1d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000017842c1e191d88055f447994e5523fbf288f547db1ab3ba436d733e4cdb5f1ba0100000000000000040000000000000002813a1ee9557c632286f9bb6b83a83dfd070ec2abbf96adaae5309537eca296b2c0ee4e0101e52300000000000073611d11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000066e04b15c3e3b982a565c63c9c0463605738a9006018c0ad5c198a20fc4630350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000365e9886b291e8cafa6a09d693c3de7de70cca0534b36cdb75be84af800f40330100000000000000c0698e756d794ed2451fe14a44153707bba5210aea0c3b2c027cd2f5c7edbf4001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec326540100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a010000000000000002fc75dfc876ea09e5685c20b9a64a284189e37f9378c85778468c6676b5675501000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b0033313d23127061d7f052a965bfeead348e6fe54f9915474ed52b843382e790100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d010000000000000036d3a06fbedbcef88bf6f6aabd6a25953b893f767201a0e4956810a00b85852e0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede127020100000000000000ac0596c32a2144b2214a588fa0dc2e589dd829395a569b1f60ee8db6a2b5b111010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d0100000000000000aab921a8e3177ad915a5bb14a1dd843b3744754c91ac7f5402986c1e668e2e79010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb410010000000000000042d38df210c101e9b03756c9e65eef507f2a1808d3fb498cbfc4582a92a0460401000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db0967701000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d010000000000000006a45181daed2665c4725d23a29578240c003af72848d0d088359abec0a62d110100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b010000000000000034c0875099a36d915052e0c604b901c10f7e1712b99e2a1b64e1ca6b2eb2d62501000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000006cb2f0f0e5fe70eb547a0814ca5346f59f7f2ca74c00714aad555157cd5a29490100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000084a33234acf6ec6008fe6d6bcb98849d8e23b3bead7b305be0f8da2b19cf5a4201000000000000007e148a2759819a1420a298c87986f76040b9225d40722cb55991d836698e38370100000000000000ba78c26db96a9ce3ccc2980dfef7346042ade9769f95afaea559f784af167a5d0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c955010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000032f75d00cbb3125b7bbbea02cefa67be8dad66d54e84f7c116ddd0dd2e3d9f49010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd878010000000000000024190e384934261c444897054262813c65a73aaf371806db97762e995e5b350e0100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e010000000000000094ac407946af69056367e2afea7e9d32f2948b678edddedf166f13ceb457955201000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000066a1f2d6065a221392fe7793303a11dd454adbed327fc7395d7a69be69d79a59010000000000000020a16c4dcdb2a546624222a27f099cf5bcecb3b18919bb01c71ed76fca94b067010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc74010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd40760100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e6601000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e01000000000000005c9b116ed7527b0521213299bee8025e89136d819295fa16ef7cf4f4b86887490100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000003e0114fcde9ea02063860799e0f090c834578ce29b5ae94b7cb26aec388057120100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000088ee2c79dfb4142ed4e9a73488e79c456c9827f316358afa16a03ee5ad690d750100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f6701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e720100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a8567001000000000000006eebb90d453e3e26540730fe99339d907a0e46365f6f2c8e2bd1a2dc83c2897e010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f01000000000000007075de5f3cae26e005560440e9cc633c9fe8d7143b1fb8dc67e0d1ed7871e77d0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e67010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000148f1be467808e1cc693cf74ddf2e61ef1c13aa351b201835558f7284137995b01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f12010000000000000078ff15d8b70baf2d53f3587a080adfa5c737489138d34d8f6f40a2d96419df7f01000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c0100000000000000e0f7debc0989ef62dee42d2cfc81a07625f89e511c3baeed9e6952e66d9b6a46010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000054f38b66fe13dfdc13edcb28f46329e91ac63046380c7e91b93a3ddf2b46754f010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e0584201000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac711901000000000000008c25d077f2b88ff32aeb8c16d114c73b38c280b79d93f0d0a5ebd0e5af2c7e2701000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000002525a23e84251b2fcb3db171a2366077fe92a934c343b25678bcb682b0ed1df20100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5480086, - "finalizedBlockHeader": "0xab76e4126462c0bb40b89c08139794200624b3e8a304668f3af8488ee952060b0ac23b05f63365e51193dbc5e6c9b1fe5dc15749a699bec6893d39e0fecb0a7469bebfc6e34d1aa9c3a04b13257c94c228ab845cf56fb1c0527a164a0b83b9320a90b9980c0642414245b50103dc000000d6591d110000000014589279de3e5b25fe6ec57e2fe7cd87add33a9de8d792c7ed62d4f9a91bc33ca3dd4d1716a4c604c5c54706f18a9ee94ed383982151b2e0d1604848ffedeb0d4204a6070068368644ff7bfbd6c80001cba43add55e4ad44ba448e12aec51e0704424545468403a912f839c08293835299efd9bcb57f34893070f106394b6f9c1dbb95061096380542414245010130b73eff375cd24f2ffe4eb14d444e8b58656e7b60fedb35529ae33d10ca68424368e7db558d4f80194dbcfec73c22dfd940252186b788f7d35d2f639ff8c482", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f420100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec801000000000000005646da1fdd62a7a67010d38b2cca5fda0955a92bd9ac37d2f2ba77ac0895f4fb01000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a501000000000000009ad71d6ddd5a135c79baa827b738cae1ffa198a0a85246ba0b676ea12bdeba7b0100000000000000bc08c197f7281aebdbd1dad6c2b02a6831ee8b5320745f9be57eb2a1f1b0fa9f0100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000bb60743c9aa7dcc48846b6dc1d95923d34e62dc184d9e4d99f0a8de40e8ba3b8010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b290010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf01000000000000007de9970a903513e5e8d0429c3671130008fc950d6d02c31d3b1746b6d839f39e0100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da81010000000000000010a50acde267a82fe4ce8bd482edfde9d63edee111511b56ff4c4c28f57046fa01000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000007a99eb5f9dd892ab541176abfcb3a9b87e184c9f5737f0c1e69b90f62c522aef0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000000074497472b01dc3a0c379b9622ca2579b14b0ae540e10ad655afdbf8bb1d2490100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008bdbdbeb92302e77649c730eed64efac417dde56810bb59588f31081c2dcef4301000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d01000000000000007c077f9fbba618995d7df802a578934d36a5c0bec16dfcbaa7bce3879b4c44ce0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000600e433183aa04247203b358cbdb99116a3c5d6a3c4b2692487a2b3791de004d0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000c27817140b1ab423096650608830db849d51c5e3189c0b8d15697c7974899db50100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000000a78114972d0d627bf3e6a0d42be67a6a9b0383b38b19c0a4b8d94680314b7e801000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c0100000000000000aff34a12831c0cfcca47dc05f01b064dac393731d20ab3ebe57df4f6eaa021d101000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000002b7b893e884f4d9c99a3a154b78cfa4b461422860537fa77d064dbd0de4e0a8a01000000000000004d04ebdd4185dee9609536d870ba5d984a6fa435aeb1fb611c4de06d57345b7a01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda201000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd501000000000000000866af299a3a66dadcfa3676fa01167969a428353568b3fa951ef76cf9f874ed0100000000000000487da9661496aad61869534fe7397d6b1aa1786f4d587137005c0e7b4dc4c1cb010000000000000098237d7b68db1bb6e79c5174523a8806a88fe0fe427b40199b984216800517d30100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000048630433999edabfc2790d3f5cf47a5ae499e2fdc3c4a9abc04a98da29c368b60100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003ab5af195d3e54bba57e395b1b69920bbee9a5169aa1ee8ed0ab97422528e9490100000000000000f1fb51ab1445fe4d14cd9a8c9248557fd1c9b669b9d7d72f5de4cad4ce120c08010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b0100000000000000f5ed118038230c29a138443aa6772e24aad7567226d6dd98e5596856a98166c9010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000068a8e1ed303440fb10c05a39e73361bf01f4137d5573d517df902645884ed240100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab2508792601000000000000004abc35969775726127370e3bef6da0c45c5e281ed03b11bc32eb5d736d197e380100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee2497010000000000000048abc177ef2dc1e206d615c9c028afb9a58588cb25f893d517ade4fa9c0dc26a0100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000cdf28bc59aab771bc1450c9fa1b61f67c276511223a2aba191c33ebf017d91190100000000000000aa4b67e509c68f6ba9e4226e529052f0042f6a5804abb21bdf8faa485925aedd0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d01000000000000008077fd93f4073cf25aef527807c9ce1d5c02c447edeec07b02bc52f139f8c7730100000000000000fb267d8f26a35c34d58b4dc0633cf56f5eb6882ec873270dfbb0e55c64404dc101000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000fbd06da169daa41936401cd54d06ecb61cf722e3e1d34a9ac048d0c800014d5f0100000000000000b58b8af4f9a5c18d5e97d22ed2098cf2e6cae587400859041059ca8afeced7450100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000d3446b94b38255ea7a70f84e52f0f167cb5ebd82a3c0f31498bbf2b24ae3a9650100000000000000147db701e00ffe84da179a84aab9c3653deb77e8ee867358e1035df1bc58f862010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000532bc96e942be9de9214f40c9d221fb9235856f6a781a8be0161acf804b4dbe40100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000bb7045a8da399663f16cc865bc2406716150aa804da56ddbabaad386064acdad0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b0100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b0100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000007e11db40409c32a4261679bc520ee8ce4af31944d19b1faf2158299e905e72801000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000003f2c01a2e1e996a73582943fd0749ec223b2ea8129513a2c5c4b52bedc1f75a601000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b20100000000000000cc7e024990cfcb38b700cfdb5ad0c66d9dc49c94a3ebc26aecb98b3d298f1b1d01000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000c96f4bcdb9d46096e4e60da9acce9c761463ff38563368feddfccab6135923ad01000000000000005c0ce76a2fbef3a0df89ae8c2bedac4e288c3679c33701980624c9ffcca9103b0100000000000000aae265f73abaf1fdfc01a798c357cddeb8467caae251b123ea3ecd94a6f2d9bf0100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b385010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000004655b8a8e7f4e3532b7aa5e461d25ca6d5af49e0557da59654d15fe1d1eda4c010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e61180210379701000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c80100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea4567010000000000000075ac0bf484521ab487f2e74739b3beaba289037dde8ec748c70b461a24ebc5190100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b1901000000000000002d12330b8029ef13e02675c6df0e10c6fdbc10e974803730866e603305ff4471010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb01000000000000006a536f056479ef8f567471f1859757e3bb6284d4ce04319356eb2d6f5de119710100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c0100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000007104becc86b2517ee166201faadeec93e4150bbde0fed50e99f68f427f5af8780100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b01000000000000000ea1cd7154cd4d50d009d8db3d6d40897d9170ff97e6493c8d0dd2ca74582307010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a4010000000000000098c77f59e959418f0817c0fb327b8790c4fb0f8068a1c01fa8620db63e1cb3e801000000000000007d62c0b3dc3697b9adf2065032a236d0f6d926c086977dd6339ab02489a684a201000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000005808000000000000000182f04e0100612100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e01" + "babeEpochChanges": "0x04f9dcb41739ffaeb90c2efe05eb96d3de0342af32eb5d431f6ae28dcd3784df64dc6450010173d81e1100000000d3e11e11000000000460f8f800d2698867bd658a17bb42f540fdce0c1812e1ae2f1b00f36ba1bf32db376e500101d3e11e110000000033eb1e11000000000423482790b128f33a2a7e73023ca20d505601e8bae80f27ef4b5d7bb86f76de9e8c7750010133eb1e110000000093f41e110000000000000c23482790b128f33a2a7e73023ca20d505601e8bae80f27ef4b5d7bb86f76de9e8c775001010f2400000000000033eb1e11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a710100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000002a0d15d6e631555b5904347855792d651a650925014930238a295df7aa7bb11c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec2981701000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac71190100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000034e3e57f02e4112c03ef9025c94c5b6f373c7a3c7bf3a9d39af79f40f4ce5d35010000000000000004000000000000000260f8f800d2698867bd658a17bb42f540fdce0c1812e1ae2f1b00f36ba1bf32db376e5001010e24000000000000d3e11e11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a710100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000002a0d15d6e631555b5904347855792d651a650925014930238a295df7aa7bb11c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec2981701000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac71190100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000e1dabbe9e6ab12024e83c0381635bfdc34052aae4e15e9d3903b9ca48c2822500100000000000000040000000000000002f9dcb41739ffaeb90c2efe05eb96d3de0342af32eb5d431f6ae28dcd3784df64dc645001010d2400000000000073d81e11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a710100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000002a0d15d6e631555b5904347855792d651a650925014930238a295df7aa7bb11c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec2981701000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac71190100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000003657957258a68fc8186c3216b696a7027753d5e5fa58cb092ca69dbae25e0f9c0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5505385, + "finalizedBlockHeader": "0x52f00faaabb006057807bd57a9d72028a20f60a59f9b788c2f6dc4aa5be5153842e541058c20092b40638bc037e60b9ab351b19082f50048200a9987aa47abd9b138b73189dff803be37eaf7012b89cdf3eb01bea7b4c490b5165aa3eebe3d3a5fc531ce0c0642414245b501036500000097e31e1100000000986d2d1478ffe006ab55c3d49eaed724fc49b7e30a0b06360c9cad5accf8a96a37802cf6715cb56053308dae3636a92b1ddf5911df350b5a28eeca15c0996006bb2834465d62b0d93c0eff722a5ae9fcca3705e322332c792b5e4b946c49d00504424545468403299f83124e4cddac5470ce91be67f39b8d86c42dc0abf951fb93e62318d3917805424142450101daf8e5cdb99891cc651b0397d1bf9ce8b7f1f183a403a38f37d83a85d9b29b10dd6ac8a07eb62836c8b3968e0790c68775d6a36a5683996db9010c0abe85ed89", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000c406ffbebce8cdece918edf454d780aa298c8134a8f73848c856a9bc00c4b1b10100000000000000e910e45c162a4e9ae379bfcca70ac2165ce37f72652ef16898e86fd54f85ec110100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b280100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000094a9bcd15e4fcd86b34e42a581a07dbfc190832003306ce3c069cf73718cb973010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000004f921e651aac48305df584f38608e4cd23bb3ddadc66045f1bd2aa91022434610100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000bd7acc9ffa9ec1eed06acaf6a0f4f48ff10f83681b19e55ebc4c3a969df2e2ce01000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f810100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f9401000000000000004a68c3ada00a5c4248e74840b836cdb87eec6adbf99dabbb90a8ded6e04de6c60100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae0101000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000fb3a06e07b02896157fdc7230199503899221cd21bacdd79d2469adb1cc39ece010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000e5df12b672ff723fb3a00817d48fa27843bc7854328dfed88bb0e4afed20b65a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000007c6dcd08a7dae2fed7a44e3ef208d86e2a4c41694f0154d0e1194fa3644ad96401000000000000004d04ebdd4185dee9609536d870ba5d984a6fa435aeb1fb611c4de06d57345b7a01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda20100000000000000f3300017c9cadc38d61b118edd05c0540768521f88c5092215e47a9d0403fc7a01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd50100000000000000fd3d1c4982441db21060e8834c5ccb6331e81fbfa01756770dfe297d5038ac950100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003ab5af195d3e54bba57e395b1b69920bbee9a5169aa1ee8ed0ab97422528e949010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000068a8e1ed303440fb10c05a39e73361bf01f4137d5573d517df902645884ed240100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e0100000000000000798d28848cf6e642e3148e0a250ab346b5f21a81d5496141318ff57b5766f46801000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b49727292401000000000000009be52a6b66e1daecf1abe913bfe4bb0cc07e1025b0f594be94c6003b526ec33b0100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000ff5d4070a8a7798cd22dbc7a7e2a909b697e738683e701aeff696af26ebff07201000000000000008077fd93f4073cf25aef527807c9ce1d5c02c447edeec07b02bc52f139f8c7730100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c5901000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000147db701e00ffe84da179a84aab9c3653deb77e8ee867358e1035df1bc58f862010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000005ec6b4116bab9f5accdc7d894fe0a36a34a2939a5023ddf95a2137c371796af10100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000bb7045a8da399663f16cc865bc2406716150aa804da56ddbabaad386064acdad0100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000096c6301cf86ba237ec1b24c7d9b6cd3b872492d26d58d54a8050f18785af33450100000000000000447661b3b799d8f7665d765a485467a5a03536c33cf1d8f5208c384e55f11ea6010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b0100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000007e11db40409c32a4261679bc520ee8ce4af31944d19b1faf2158299e905e72801000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f0100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000f8e50e8b63b242e30e5bd266584b6fc690817455d2eac1e04d146dfc1dd3614d010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000b79f919442f4ca5ac9195fd09a1239b1a80bd225f8372f1b36a24a8c55de61f20100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f601000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c80100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea45670100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000cffc9fb5e5403c75c8a4e3a270affdeced91b6db5ef38cc3058c36b79cf77b6501000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c01000000000000002fbe3b1b79ed47d070067479266ad9b30732c4b8f6170c8888a1ad5365053e760100000000000000d45705ecc1f19f97d4ba95b672c4514c65d286dd5af9b8c21ef9c28073855c970100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e00100000000000000e6489beb573734e417fa040e59af4e44789001fad63f5df871818cc70714e6d001000000000000005ee516fa4c351fb4adcb522658cf7531eac3b2b3365a647cd8d7c7681e146458010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d301000000000000007104becc86b2517ee166201faadeec93e4150bbde0fed50e99f68f427f5af8780100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000aa7c33f99de85adfe5ab929090294916df6bdd9a1cc75f632058509f4e1a9bb4010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a4010000000000000098c77f59e959418f0817c0fb327b8790c4fb0f8068a1c01fa8620db63e1cb3e801000000000000002dd8b91790e7023f68c52021f40fe08a5769eb7e3f3a6f6c8a54454012a5497401000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c90066528010000000000000097485aff1573c42971da2d363dd00e29dd61c8e285d100ace0347bfdb6b5981701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b01000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff2740100000000000000c5ca85d7f46a61b5153a44b17020a6f2bb0f05635321e283971a1a2909f8e820010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000005f08000000000000000150795001007d2100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e0158080000000000001d144f015908000000000000284c4f015a0800000000000043844f015b080000000000005ebc4f015c080000000000006ff44f015d08000000000000a32c50015e08000000000000dc645001" }, "name": "Polkadot", "properties": { diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index 00da8d8e66..9cd95deb4b 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -102,7 +102,7 @@ pub mod api { pub type Event = runtime_types::rococo_runtime::RuntimeEvent; #[doc = r" The outer extrinsic enum."] pub type Call = runtime_types::rococo_runtime::RuntimeCall; - #[doc = r" The outer error enum representing the DispatchError's Module variant."] + #[doc = r" The outer error enum represents the DispatchError's Module variant."] pub type Error = runtime_types::rococo_runtime::RuntimeError; pub fn constants() -> ConstantsApi { ConstantsApi From fb1ca92a31ecd65285c0f8494d2e3bfc9168068a Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Mon, 19 Aug 2024 18:09:26 +0200 Subject: [PATCH 098/137] fix: update Cargo.lock for wasm-tests (#1718) --- testing/wasm-rpc-tests/Cargo.lock | 1438 ++++++++++++++++------------- 1 file changed, 805 insertions(+), 633 deletions(-) diff --git a/testing/wasm-rpc-tests/Cargo.lock b/testing/wasm-rpc-tests/Cargo.lock index e2d2a7225a..775b8392bb 100644 --- a/testing/wasm-rpc-tests/Cargo.lock +++ b/testing/wasm-rpc-tests/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.20.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -29,9 +29,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "once_cell", @@ -41,21 +41,21 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "anyhow" -version = "1.0.71" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" [[package]] name = "arrayvec" @@ -68,18 +68,17 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-channel" -version = "2.1.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -87,24 +86,24 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener", + "event-listener 5.3.1", "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-trait" -version = "0.1.74" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -114,16 +113,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" [[package]] -name = "autocfg" -version = "1.1.0" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.68" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -148,9 +153,15 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.2" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "beef" @@ -178,9 +189,9 @@ checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" [[package]] name = "bitflags" -version = "1.3.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitvec" @@ -215,13 +226,13 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" +checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", - "arrayvec 0.7.4", - "constant_time_eq 0.2.6", + "arrayvec 0.7.6", + "constant_time_eq 0.3.0", ] [[package]] @@ -244,18 +255,18 @@ dependencies = [ [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "tinyvec", ] [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -271,25 +282,37 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.4.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cc" -version = "1.0.83" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" dependencies = [ - "libc", + "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chacha20" version = "0.9.1" @@ -312,10 +335,20 @@ dependencies = [ ] [[package]] -name = "concurrent-queue" -version = "2.4.0" +name = "combine" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -338,9 +371,9 @@ checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" [[package]] name = "constant_time_eq" -version = "0.2.6" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21a53c0a4d288377e7415b53dcfc3c04da5cdc2cc95c8d5ac178b58f0b861ad6" +checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" [[package]] name = "convert_case" @@ -350,9 +383,9 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation" -version = "0.9.3" +version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" dependencies = [ "core-foundation-sys", "libc", @@ -360,37 +393,33 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.8" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e69e28e9f7f77debdedbaafa2866e1de9ba56df55a8bd7cfc724c25a09987c" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] [[package]] name = "crossbeam-queue" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1cfb3ea8a53f37c40dea2c7bedcbd88bdfae54f5e2175d6ecaff1c988353add" +checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35" dependencies = [ - "cfg-if", "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.16" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" -dependencies = [ - "cfg-if", -] +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -421,16 +450,15 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "platforms", "rustc_version", "subtle", "zeroize", @@ -444,7 +472,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -459,12 +487,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.3" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.3", - "darling_macro 0.20.3", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -477,22 +505,22 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.10.0", "syn 1.0.109", ] [[package]] name = "darling_core" -version = "0.20.3" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim", - "syn 2.0.48", + "strsim 0.11.1", + "syn 2.0.75", ] [[package]] @@ -508,37 +536,37 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.3" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.3", + "darling_core 0.20.10", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] -name = "derivative" -version = "2.2.0" +name = "derive-where" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.75", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.75", ] [[package]] @@ -563,9 +591,9 @@ dependencies = [ [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "ed25519" @@ -584,18 +612,24 @@ checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" dependencies = [ "curve25519-dalek", "ed25519", - "hashbrown 0.14.0", + "hashbrown", "hex", "rand_core", - "sha2 0.10.7", + "sha2 0.10.8", "zeroize", ] [[package]] name = "either" -version = "1.9.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "event-listener" @@ -604,25 +638,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", - "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", "pin-project-lite", ] [[package]] name = "event-listener-strategy" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener", + "event-listener 5.3.1", "pin-project-lite", ] [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "finito" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2384245d85162258a14b43567a9ee3598f5ae746a1581fb5d3d2cb780f0dbf95" +dependencies = [ + "futures-timer", + "pin-project", +] [[package]] name = "fixed-hash" @@ -718,9 +771,9 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "futures-core", "pin-project-lite", @@ -734,7 +787,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -751,9 +804,9 @@ checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ "gloo-timers", "send_wrapper 0.4.0", @@ -789,9 +842,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "js-sys", @@ -811,9 +864,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.3" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "gloo-net" @@ -825,7 +878,7 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils", - "http", + "http 0.2.12", "js-sys", "pin-project", "serde", @@ -863,16 +916,16 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.19" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d357c7ae988e7d2182f7d7871d0b963962420b0678b0997ce7de72001aeab782" +checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http", + "http 1.1.0", "indexmap", "slab", "tokio", @@ -882,15 +935,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.12.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" - -[[package]] -name = "hashbrown" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", "allocator-api2", @@ -899,18 +946,15 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.2.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -950,9 +994,20 @@ dependencies = [ [[package]] name = "http" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -961,65 +1016,89 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.5" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "hyper" -version = "0.14.26" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", - "http", + "http 1.1.0", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2 0.4.9", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-rustls" -version = "0.24.1" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", - "http", + "http 1.1.0", "hyper", + "hyper-util", "log", - "rustls 0.21.7", - "rustls-native-certs 0.6.3", + "rustls", + "rustls-pki-types", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -1069,12 +1148,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "1.9.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ - "autocfg", - "hashbrown 0.12.3", + "equivalent", + "hashbrown", ] [[package]] @@ -1094,9 +1173,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", "js-sys", @@ -1106,58 +1185,81 @@ dependencies = [ [[package]] name = "itertools" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.67" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.21.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9579d0ca9fb30da026bac2f0f7d9576ec93489aeb7cd4971dd5b4617d82c79b2" +checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-http-client", "jsonrpsee-types", + "jsonrpsee-wasm-client", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.21.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9f9ed46590a8d5681975f126e22531698211b926129a40a2db47cbca429220" +checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432" dependencies = [ + "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http", + "http 1.1.0", "jsonrpsee-core", "pin-project", - "rustls-native-certs 0.7.0", + "rustls", "rustls-pki-types", - "soketto", + "rustls-platform-verifier", + "soketto 0.8.0", "thiserror", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls", "tokio-util", "tracing", "url", @@ -1165,17 +1267,19 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.21.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "776d009e2f591b78c038e0d053a796f94575d66ca4e77dd84bfc5e81419e436c" +checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b" dependencies = [ "anyhow", - "async-lock", "async-trait", "beef", + "bytes", "futures-timer", "futures-util", - "hyper", + "http 1.1.0", + "http-body", + "http-body-util", "jsonrpsee-types", "pin-project", "rustc-hash", @@ -1190,15 +1294,20 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.21.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b7de9f3219d95985eb77fd03194d7c1b56c19bce1abfcc9d07462574b15572" +checksum = "2d90064e04fb9d7282b1c71044ea94d0bbc6eff5621c66f1a0bce9e9de7cf3ac" dependencies = [ "async-trait", + "base64 0.22.1", + "http-body", "hyper", "hyper-rustls", + "hyper-util", "jsonrpsee-core", "jsonrpsee-types", + "rustls", + "rustls-platform-verifier", "serde", "serde_json", "thiserror", @@ -1210,37 +1319,58 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.21.0" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3266dfb045c9174b24c77c2dfe0084914bb23a6b2597d70c9dc6018392e1cd1b" +checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af" dependencies = [ - "anyhow", "beef", + "http 1.1.0", "serde", "serde_json", "thiserror", ] [[package]] -name = "keccak" -version = "0.1.4" +name = "jsonrpsee-wasm-client" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "4727ac037f834c6f04c0912cada7532dbddb54e92fbc64e33d6cb8c24af313c9" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "keccak-hash" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "4b286e6b663fb926e1eeb68528e69cb70ed46c6d65871a21b2215ae8154c6d3c" +dependencies = [ + "primitive-types", + "tiny-keccak", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.152" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libm" @@ -1298,24 +1428,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.19" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" -version = "0.12.1" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" dependencies = [ - "hashbrown 0.14.0", + "hashbrown", ] [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "merlin" @@ -1329,6 +1459,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "minicov" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c71e683cd655513b99affab7d317deb690528255a0d5f717f1024093c12b169" +dependencies = [ + "cc", + "walkdir", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1337,22 +1477,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.10" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1379,32 +1520,29 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.3" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -1412,43 +1550,33 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "object" -version = "0.31.1" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -1458,11 +1586,11 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "parity-scale-codec" -version = "3.6.1" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2287753623c76f953acd29d15d8100bcab84d29db78fb6f352adb3c53e83b967" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", @@ -1472,33 +1600,27 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.1" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b6937b5e67bfba3351b87b040d48352a2fcb6ad72f81855412ce97b45c8f110" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", ] -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - [[package]] name = "paste" -version = "1.0.12" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" -version = "0.12.1" +version = "0.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0ca0b5a68607598bf3bad68f32227a8164f6254833f84eafaac409cd6746c31" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", ] @@ -1511,29 +1633,29 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pin-project" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.3" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1541,12 +1663,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "platforms" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630" - [[package]] name = "poly1305" version = "0.8.0" @@ -1560,9 +1676,12 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "primitive-types" @@ -1584,7 +1703,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "toml_edit", + "toml_edit 0.19.15", +] + +[[package]] +name = "proc-macro-crate" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" +dependencies = [ + "toml_edit 0.21.1", ] [[package]] @@ -1613,18 +1741,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.76" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1666,39 +1794,42 @@ dependencies = [ ] [[package]] -name = "ring" -version = "0.16.20" +name = "reconnecting-jsonrpsee-ws-client" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "06fa4f17e09edfc3131636082faaec633c7baa269396b4004040bc6c52f49f65" dependencies = [ - "cc", - "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", + "cfg_aliases", + "finito", + "futures", + "jsonrpsee", + "serde_json", + "thiserror", + "tokio", + "tracing", + "wasm-bindgen-futures", ] [[package]] name = "ring" -version = "0.17.7" +version = "0.17.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys 0.48.0", + "spin", + "untrusted", + "windows-sys 0.52.0", ] [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -1723,50 +1854,27 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.7" +version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd8d6c9f025a446bc4d18ad9632e69aec8f287aa84499ee335599fabd20c3fd8" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "log", - "ring 0.16.20", - "rustls-webpki 0.101.6", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" -dependencies = [ - "log", - "ring 0.17.7", + "once_cell", + "ring", "rustls-pki-types", - "rustls-webpki 0.102.1", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.6.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.2", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.0.0", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", @@ -1774,48 +1882,56 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.2" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" dependencies = [ - "base64 0.21.2", -] - -[[package]] -name = "rustls-pemfile" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" -dependencies = [ - "base64 0.21.2", + "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.1.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9d979b3ce68192e42760c7810125eb6cf2ea10efae545a156063e61f314e2a" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] -name = "rustls-webpki" -version = "0.101.6" +name = "rustls-platform-verifier" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c7d5dece342910d9ba34d259310cae3e0154b873b35408b787b59bce53d34fe" +checksum = "93bda3f493b9abe5b93b3e7e3ecde0df292f2bd28c0296b90586ee0055ff5123" dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-roots", + "winapi", ] [[package]] -name = "rustls-webpki" -version = "0.102.1" +name = "rustls-platform-verifier-android" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4ca26037c909dedb327b48c3327d0ba91d3dd3c4e05dad328f210ffb68e95b" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ - "ring 0.17.7", + "ring", "rustls-pki-types", - "untrusted 0.9.0", + "untrusted", ] [[package]] @@ -1831,44 +1947,53 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.13" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] [[package]] name = "scale-bits" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "036575c29af9b6e4866ffb7fa055dbf623fe7a9cc159b33786de6013a6969d89" +checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" dependencies = [ "parity-scale-codec", "scale-info", + "scale-type-resolver", "serde", ] [[package]] name = "scale-decode" -version = "0.10.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7caaf753f8ed1ab4752c6afb20174f03598c664724e0e32628e161c21000ff76" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ "derive_more", "parity-scale-codec", "primitive-types", "scale-bits", "scale-decode-derive", - "scale-info", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-decode-derive" -version = "0.10.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3475108a1b62c7efd1b5c65974f30109a598b2f45f23c9ae030acb9686966db" +checksum = "9bb22f574168103cdd3133b19281639ca65ad985e24612728f727339dcaf4021" dependencies = [ "darling 0.14.4", - "proc-macro-crate", "proc-macro2", "quote", "syn 1.0.109", @@ -1876,27 +2001,27 @@ dependencies = [ [[package]] name = "scale-encode" -version = "0.5.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d70cb4b29360105483fac1ed567ff95d65224a14dd275b6303ed0a654c78de5" +checksum = "4ba0b9c48dc0eb20c60b083c29447c0c4617cb7c4a4c9fef72aa5c5bc539e15e" dependencies = [ "derive_more", "parity-scale-codec", "primitive-types", "scale-bits", "scale-encode-derive", - "scale-info", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-encode-derive" -version = "0.5.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995491f110efdc6bea96d6a746140e32bfceb4ea47510750a5467295a4707a25" +checksum = "82ab7e60e2d9c8d47105f44527b26f04418e5e624ffc034f6b4a86c0ba19c5bf" dependencies = [ "darling 0.14.4", - "proc-macro-crate", + "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -1904,9 +2029,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "bitvec", "cfg-if", @@ -1918,34 +2043,44 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "scale-typegen" -version = "0.1.1" +name = "scale-type-resolver" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00860983481ac590ac87972062909bef0d6a658013b592ccc0f2feb272feab11" +checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" +dependencies = [ + "scale-info", + "smallvec", +] + +[[package]] +name = "scale-typegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498d1aecf2ea61325d4511787c115791639c0fd21ef4f8e11e49dd09eff2bbac" dependencies = [ "proc-macro2", "quote", "scale-info", - "syn 2.0.48", + "syn 2.0.75", "thiserror", ] [[package]] name = "scale-value" -version = "0.13.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58223c7691bf0bd46b43c9aea6f0472d1067f378d574180232358d7c6e0a8089" +checksum = "ba4d772cfb7569e03868400344a1695d16560bf62b86b918604773607d39ec84" dependencies = [ "base58", "blake2", @@ -1957,17 +2092,18 @@ dependencies = [ "scale-decode", "scale-encode", "scale-info", + "scale-type-resolver", "serde", "yap", ] [[package]] name = "schannel" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" dependencies = [ - "windows-sys 0.42.0", + "windows-sys 0.52.0", ] [[package]] @@ -1978,13 +2114,13 @@ checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ "aead", "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "curve25519-dalek", "getrandom_or_panic", "merlin", "rand_core", "serde_bytes", - "sha2 0.10.7", + "sha2 0.10.8", "subtle", "zeroize", ] @@ -1995,34 +2131,25 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring 0.16.20", - "untrusted 0.7.1", -] - [[package]] name = "security-framework" -version = "2.9.1" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags", "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.9.0" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -2030,9 +2157,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.17" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "send_wrapper" @@ -2048,40 +2175,41 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.195" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.195" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "serde_json" -version = "1.0.111" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -2099,6 +2227,17 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.9.9" @@ -2114,9 +2253,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -2135,13 +2274,19 @@ dependencies = [ [[package]] name = "sharded-slab" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ "lazy_static", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signature" version = "2.2.0" @@ -2150,24 +2295,24 @@ checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" [[package]] name = "siphasher" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" -version = "0.4.8" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ "autocfg", ] [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smoldot" @@ -2175,10 +2320,10 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d1eaa97d77be4d026a1e7ffad1bb3b78448763b357ea6f8188d3e6f736a9b9" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "async-lock", "atomic-take", - "base64 0.21.2", + "base64 0.21.7", "bip39", "blake2-rfc", "bs58", @@ -2187,11 +2332,11 @@ dependencies = [ "derive_more", "ed25519-zebra", "either", - "event-listener", + "event-listener 4.0.3", "fnv", "futures-lite", "futures-util", - "hashbrown 0.14.0", + "hashbrown", "hex", "hmac 0.12.1", "itertools", @@ -2212,12 +2357,12 @@ dependencies = [ "schnorrkel", "serde", "serde_json", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "siphasher", "slab", "smallvec", - "soketto", + "soketto 0.7.1", "twox-hash", "wasmi", "x25519-dalek", @@ -2232,16 +2377,16 @@ checksum = "5496f2d116b7019a526b1039ec2247dd172b8670633b1a64a614c9ea12c9d8c7" dependencies = [ "async-channel", "async-lock", - "base64 0.21.2", + "base64 0.21.7", "blake2-rfc", "derive_more", "either", - "event-listener", + "event-listener 4.0.3", "fnv", "futures-channel", "futures-lite", "futures-util", - "hashbrown 0.14.0", + "hashbrown", "hex", "itertools", "log", @@ -2260,22 +2405,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.9" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" -dependencies = [ - "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2294,25 +2429,34 @@ dependencies = [ ] [[package]] -name = "sp-crypto-hashing" -version = "13.0.0" +name = "soketto" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb8524f01591ee58b46cd83c9dbc0fcffd2fd730dabec4f59326cd58a00f17e2" +checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures", + "httparse", + "log", + "rand", + "sha1", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" dependencies = [ "blake2b_simd", "byteorder", "digest 0.10.7", - "sha2 0.10.7", + "sha2 0.10.8", "sha3", "twox-hash", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -2332,19 +2476,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] -name = "subtle" -version = "2.5.0" +name = "strsim" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "subxt" -version = "0.33.0" +version = "0.37.0" dependencies = [ "async-trait", - "base58", - "blake2", - "derivative", + "derive-where", "either", "frame-metadata 16.0.0", "futures", @@ -2355,6 +2503,7 @@ dependencies = [ "jsonrpsee", "parity-scale-codec", "primitive-types", + "reconnecting-jsonrpsee-ws-client", "scale-bits", "scale-decode", "scale-encode", @@ -2363,6 +2512,7 @@ dependencies = [ "serde", "serde_json", "sp-crypto-hashing", + "subxt-core", "subxt-lightclient", "subxt-macro", "subxt-metadata", @@ -2373,7 +2523,7 @@ dependencies = [ [[package]] name = "subxt-codegen" -version = "0.33.0" +version = "0.37.0" dependencies = [ "frame-metadata 16.0.0", "getrandom", @@ -2386,14 +2536,40 @@ dependencies = [ "scale-info", "scale-typegen", "subxt-metadata", - "syn 2.0.48", + "syn 2.0.75", "thiserror", "tokio", ] +[[package]] +name = "subxt-core" +version = "0.37.0" +dependencies = [ + "base58", + "blake2", + "derive-where", + "frame-metadata 16.0.0", + "hashbrown", + "hex", + "impl-serde", + "keccak-hash", + "parity-scale-codec", + "primitive-types", + "scale-bits", + "scale-decode", + "scale-encode", + "scale-info", + "scale-value", + "serde", + "serde_json", + "sp-crypto-hashing", + "subxt-metadata", + "tracing", +] + [[package]] name = "subxt-lightclient" -version = "0.33.0" +version = "0.37.0" dependencies = [ "futures", "futures-timer", @@ -2418,24 +2594,26 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.33.0" +version = "0.37.0" dependencies = [ - "darling 0.20.3", + "darling 0.20.10", "parity-scale-codec", "proc-macro-error", + "quote", + "scale-typegen", "subxt-codegen", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "subxt-metadata" -version = "0.33.0" +version = "0.37.0" dependencies = [ "frame-metadata 16.0.0", + "hashbrown", "parity-scale-codec", "scale-info", "sp-crypto-hashing", - "thiserror", ] [[package]] @@ -2451,9 +2629,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" dependencies = [ "proc-macro2", "quote", @@ -2468,39 +2646,48 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "thiserror" -version = "1.0.56" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.56" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tiny-keccak" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -2513,58 +2700,47 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.35.1" +version = "1.39.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c89b4efa943be685f629b149f53829423f8f5531ea21249408e8e2f8671ec104" +checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", - "socket2 0.5.5", + "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "tokio-rustls" -version = "0.24.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.21.7", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.2", + "rustls", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -2573,9 +2749,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.8" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", @@ -2583,20 +2759,30 @@ dependencies = [ "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] name = "toml_datetime" -version = "0.6.2" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a76a9312f5ba4c2dec6b9161fdf25d87ad8a09256ccea5a556fef03c706a10f" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" -version = "0.19.10" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2380d56e8670370eee6566b0bfd4265f65b3f432e8c6d85623f728d4fa31f739" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + +[[package]] +name = "toml_edit" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap", "toml_datetime", @@ -2613,6 +2799,7 @@ dependencies = [ "futures-util", "pin-project", "pin-project-lite", + "tokio", "tower-layer", "tower-service", "tracing", @@ -2620,15 +2807,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -2650,7 +2837,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -2664,9 +2851,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.17" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" dependencies = [ "sharded-slab", "thread_local", @@ -2686,9 +2873,9 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "twox-hash" @@ -2703,9 +2890,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "uint" @@ -2721,21 +2908,21 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.13" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.9" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15811caf2415fb889178633e7724bad2509101cde276048e013b9def5e51fa0" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -2750,12 +2937,6 @@ dependencies = [ "subtle", ] -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -2764,9 +2945,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -2775,9 +2956,19 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] [[package]] name = "want" @@ -2796,34 +2987,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.90" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.90" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -2833,9 +3025,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.90" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2843,31 +3035,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.90" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.90" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-bindgen-test" -version = "0.3.37" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e6e302a7ea94f83a6d09e78e7dc7d9ca7b186bc2829c24a22d0753efd680671" +checksum = "68497a05fb21143a08a7d24fc81763384a3072ee43c44e86aad1744d6adef9d9" dependencies = [ "console_error_panic_hook", "js-sys", + "minicov", "scoped-tls", "wasm-bindgen", "wasm-bindgen-futures", @@ -2876,12 +3069,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.37" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecb993dd8c836930ed130e020e77d9b2e65dd0fbab1b67c790b0f5d80b11a575" +checksum = "4b8220be1fa9e4c889b30fd207d4906657e7e90b12e0e6b0c8b8d8709f5de021" dependencies = [ "proc-macro2", "quote", + "syn 2.0.75", ] [[package]] @@ -2899,12 +3093,12 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.31.1" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acfc1e384a36ca532d070a315925887247f3c7e23567e23e0ac9b1c5d6b8bf76" +checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" dependencies = [ "smallvec", - "spin 0.9.8", + "spin", "wasmi_arena", "wasmi_core", "wasmparser-nostd", @@ -2912,9 +3106,9 @@ dependencies = [ [[package]] name = "wasmi_arena" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" +checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" [[package]] name = "wasmi_core" @@ -2930,23 +3124,32 @@ dependencies = [ [[package]] name = "wasmparser-nostd" -version = "0.100.1" +version = "0.100.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" dependencies = [ "indexmap-nostd", ] [[package]] name = "web-sys" -version = "0.3.67" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", ] +[[package]] +name = "webpki-roots" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "winapi" version = "0.3.9" @@ -2963,6 +3166,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + [[package]] name = "winapi-x86_64-pc-windows-gnu" version = "0.4.0" @@ -2971,132 +3183,91 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.42.0" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets", ] [[package]] name = "windows-sys" -version = "0.48.0" +version = "0.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" dependencies = [ "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] -name = "windows_i686_gnu" -version = "0.48.0" +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.42.2" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.4.7" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] @@ -3112,9 +3283,9 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ "curve25519-dalek", "rand_core", @@ -3130,29 +3301,30 @@ checksum = "ff4524214bc4629eba08d78ceb1d6507070cc0bcbbed23af74e19e6e924a24cf" [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "zeroize" -version = "1.6.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -3165,5 +3337,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] From 02ab50eee82c761d927e19bbdabd26939fcbeb1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:23:54 +0200 Subject: [PATCH 099/137] build(deps): bump wasm-bindgen from 0.2.92 to 0.2.93 (#1713) * build(deps): bump wasm-bindgen from 0.2.92 to 0.2.93 Bumps [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen) from 0.2.92 to 0.2.93. - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/compare/0.2.92...0.2.93) --- updated-dependencies: - dependency-name: wasm-bindgen dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * cargo update -p wasm-bindgen * update Cargo.lock --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 21 +- Cargo.toml | 2 +- testing/wasm-lightclient-tests/Cargo.lock | 1304 ++++++++++++--------- 3 files changed, 766 insertions(+), 561 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 509e483101..b51c598f5c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5727,19 +5727,20 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", @@ -5764,9 +5765,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -5774,9 +5775,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", @@ -5787,9 +5788,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasmi" diff --git a/Cargo.toml b/Cargo.toml index ecc3491907..fa229d80ae 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -126,7 +126,7 @@ pin-project = "1.1.5" # Light client wasm: web-sys = { version = "0.3.69", features = ["BinaryType", "CloseEvent", "MessageEvent", "WebSocket"] } -wasm-bindgen = "0.2.92" +wasm-bindgen = "0.2.93" send_wrapper = "0.6.0" js-sys = "0.3.69" wasm-bindgen-futures = "0.4.42" diff --git a/testing/wasm-lightclient-tests/Cargo.lock b/testing/wasm-lightclient-tests/Cargo.lock index 58b700e67e..866d04c356 100644 --- a/testing/wasm-lightclient-tests/Cargo.lock +++ b/testing/wasm-lightclient-tests/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.21.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678" dependencies = [ "gimli", ] @@ -29,9 +29,9 @@ dependencies = [ [[package]] name = "ahash" -version = "0.8.7" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" dependencies = [ "cfg-if", "once_cell", @@ -41,21 +41,21 @@ dependencies = [ [[package]] name = "allocator-api2" -version = "0.2.16" +version = "0.2.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5" +checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" [[package]] name = "anyhow" -version = "1.0.79" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" [[package]] name = "arrayref" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" [[package]] name = "arrayvec" @@ -68,18 +68,17 @@ dependencies = [ [[package]] name = "arrayvec" -version = "0.7.4" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "async-channel" -version = "2.1.1" +version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca33f4bc4ed1babef42cad36cc1f51fa88be00420404e5b1e80ab1b18f7678c" +checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a" dependencies = [ "concurrent-queue", - "event-listener", "event-listener-strategy", "futures-core", "pin-project-lite", @@ -87,24 +86,24 @@ dependencies = [ [[package]] name = "async-lock" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b" +checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18" dependencies = [ - "event-listener", + "event-listener 5.3.1", "event-listener-strategy", "pin-project-lite", ] [[package]] name = "async-trait" -version = "0.1.77" +version = "0.1.81" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -114,16 +113,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a8ab6b55fe97976e46f91ddbed8d147d966475dc29b2032757ba47e02376fbc3" [[package]] -name = "autocfg" -version = "1.1.0" +name = "atomic-waker" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "autocfg" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" [[package]] name = "backtrace" -version = "0.3.69" +version = "0.3.73" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +checksum = "5cc23269a4f8976d0a4d2e7109211a419fe30e8d88d677cd60b6bc79c5732e0a" dependencies = [ "addr2line", "cc", @@ -148,9 +153,15 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.6" +version = "0.21.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c79fed4cdb43e993fcdadc7e58a09fd0e3e649c4436fa11da71c9f1f3ee7feb9" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "beef" @@ -178,9 +189,9 @@ checksum = "90064b8dee6815a6470d60bad07bbbaee885c0e12d04177138fa3291a01b7bc4" [[package]] name = "bitflags" -version = "1.3.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" [[package]] name = "bitvec" @@ -220,7 +231,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23285ad32269793932e830392f2fe2f83e26488fd3ec778883a93c8323735780" dependencies = [ "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "constant_time_eq 0.3.0", ] @@ -244,18 +255,18 @@ dependencies = [ [[package]] name = "bs58" -version = "0.5.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5353f36341f7451062466f0b755b96ac3a9547e4d7f6b70d603fc721a7d7896" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" dependencies = [ "tinyvec", ] [[package]] name = "bumpalo" -version = "3.14.0" +version = "3.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" +checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" [[package]] name = "byte-slice-cast" @@ -271,25 +282,37 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.5.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" +checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" [[package]] name = "cc" -version = "1.0.83" +version = "1.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" dependencies = [ - "libc", + "shlex", ] +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + [[package]] name = "cfg-if" version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "chacha20" version = "0.9.1" @@ -312,10 +335,20 @@ dependencies = [ ] [[package]] -name = "concurrent-queue" -version = "2.4.0" +name = "combine" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "concurrent-queue" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973" dependencies = [ "crossbeam-utils", ] @@ -360,15 +393,15 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.6" +version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cpufeatures" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" dependencies = [ "libc", ] @@ -384,9 +417,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" +checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" [[package]] name = "crunchy" @@ -417,16 +450,15 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.1.1" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ "cfg-if", "cpufeatures", "curve25519-dalek-derive", "digest 0.10.7", "fiat-crypto", - "platforms", "rustc_version", "subtle", "zeroize", @@ -440,7 +472,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -455,12 +487,12 @@ dependencies = [ [[package]] name = "darling" -version = "0.20.8" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391" +checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" dependencies = [ - "darling_core 0.20.8", - "darling_macro 0.20.8", + "darling_core 0.20.10", + "darling_macro 0.20.10", ] [[package]] @@ -473,22 +505,22 @@ dependencies = [ "ident_case", "proc-macro2", "quote", - "strsim", + "strsim 0.10.0", "syn 1.0.109", ] [[package]] name = "darling_core" -version = "0.20.8" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f" +checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" dependencies = [ "fnv", "ident_case", "proc-macro2", "quote", - "strsim", - "syn 2.0.48", + "strsim 0.11.1", + "syn 2.0.75", ] [[package]] @@ -504,37 +536,37 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.20.8" +version = "0.20.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" +checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ - "darling_core 0.20.8", + "darling_core 0.20.10", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] -name = "derivative" -version = "2.2.0" +name = "derive-where" +version = "1.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +checksum = "62d671cc41a825ebabc75757b62d3d168c577f9149b2d49ece1dad1f72119d25" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.75", ] [[package]] name = "derive_more" -version = "0.99.17" +version = "0.99.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "convert_case", "proc-macro2", "quote", "rustc_version", - "syn 1.0.109", + "syn 2.0.75", ] [[package]] @@ -559,9 +591,9 @@ dependencies = [ [[package]] name = "downcast-rs" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" +checksum = "75b325c5dbd37f80359721ad39aca5a29fb04c89279657cffdda8736d0c0b9d2" [[package]] name = "ed25519" @@ -589,9 +621,9 @@ dependencies = [ [[package]] name = "either" -version = "1.10.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" +checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" [[package]] name = "equivalent" @@ -606,25 +638,44 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e" dependencies = [ "concurrent-queue", - "parking", + "pin-project-lite", +] + +[[package]] +name = "event-listener" +version = "5.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba" +dependencies = [ + "concurrent-queue", "pin-project-lite", ] [[package]] name = "event-listener-strategy" -version = "0.4.0" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3" +checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1" dependencies = [ - "event-listener", + "event-listener 5.3.1", "pin-project-lite", ] [[package]] name = "fiat-crypto" -version = "0.2.5" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "finito" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2384245d85162258a14b43567a9ee3598f5ae746a1581fb5d3d2cb780f0dbf95" +dependencies = [ + "futures-timer", + "pin-project", +] [[package]] name = "fixed-hash" @@ -720,9 +771,9 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" [[package]] name = "futures-lite" -version = "2.2.0" +version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba" +checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5" dependencies = [ "futures-core", "pin-project-lite", @@ -736,7 +787,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -753,9 +804,9 @@ checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" [[package]] name = "futures-timer" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" dependencies = [ "gloo-timers", "send_wrapper 0.4.0", @@ -791,9 +842,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", "js-sys", @@ -813,9 +864,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.1" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd" [[package]] name = "gloo-net" @@ -827,7 +878,7 @@ dependencies = [ "futures-core", "futures-sink", "gloo-utils", - "http", + "http 0.2.12", "js-sys", "pin-project", "serde", @@ -865,16 +916,16 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.23" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b553656127a00601c8ae5590fcfdc118e4083a7924b6cf4ffc1ea4b99dc429d7" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ + "atomic-waker", "bytes", "fnv", "futures-core", "futures-sink", - "futures-util", - "http", + "http 1.1.0", "indexmap", "slab", "tokio", @@ -884,9 +935,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.3" +version = "0.14.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" dependencies = [ "ahash", "allocator-api2", @@ -895,15 +946,15 @@ dependencies = [ [[package]] name = "heck" -version = "0.4.1" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.3" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" +checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" [[package]] name = "hex" @@ -943,9 +994,20 @@ dependencies = [ [[package]] name = "http" -version = "0.2.11" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258" dependencies = [ "bytes", "fnv", @@ -954,65 +1016,89 @@ dependencies = [ [[package]] name = "http-body" -version = "0.4.6" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", - "http", + "http 1.1.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793429d76616a256bcb62c2a2ec2bed781c8307e797e2598c50010f2bee2544f" +dependencies = [ + "bytes", + "futures-util", + "http 1.1.0", + "http-body", "pin-project-lite", ] [[package]] name = "httparse" -version = "1.8.0" +version = "1.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9" [[package]] name = "hyper" -version = "0.14.28" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", - "futures-core", "futures-util", "h2", - "http", + "http 1.1.0", "http-body", "httparse", - "httpdate", "itoa", "pin-project-lite", - "socket2", + "smallvec", "tokio", - "tower-service", - "tracing", "want", ] [[package]] name = "hyper-rustls" -version = "0.24.2" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" dependencies = [ "futures-util", - "http", + "http 1.1.0", "hyper", + "hyper-util", "log", - "rustls 0.21.10", - "rustls-native-certs 0.6.3", + "rustls", + "rustls-pki-types", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.1.0", + "http-body", + "hyper", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", ] [[package]] @@ -1062,9 +1148,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.1.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" dependencies = [ "equivalent", "hashbrown", @@ -1087,9 +1173,9 @@ dependencies = [ [[package]] name = "instant" -version = "0.1.12" +version = "0.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222" dependencies = [ "cfg-if", "js-sys", @@ -1099,58 +1185,81 @@ dependencies = [ [[package]] name = "itertools" -version = "0.12.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25db6b064527c5d482d0423354fcd07a89a2dfe07b67892e62411946db7f07b0" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "jni" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6df18c2e3db7e453d3c6ac5b3e9d5182664d28788126d39b91f2d1e22b017ec" +dependencies = [ + "cesu8", + "combine", + "jni-sys", + "log", + "thiserror", + "walkdir", +] + +[[package]] +name = "jni-sys" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.22.2" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87f3ae45a64cfc0882934f963be9431b2a165d667f53140358181f262aca0702" +checksum = "62b089779ad7f80768693755a031cc14a7766aba707cbe886674e3f79e9b7e47" dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-http-client", "jsonrpsee-types", + "jsonrpsee-wasm-client", ] [[package]] name = "jsonrpsee-client-transport" -version = "0.22.2" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "455fc882e56f58228df2aee36b88a1340eafd707c76af2fa68cf94b37d461131" +checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432" dependencies = [ + "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", - "http", + "http 1.1.0", "jsonrpsee-core", "pin-project", - "rustls-native-certs 0.7.0", + "rustls", "rustls-pki-types", - "soketto", + "rustls-platform-verifier", + "soketto 0.8.0", "thiserror", "tokio", - "tokio-rustls 0.25.0", + "tokio-rustls", "tokio-util", "tracing", "url", @@ -1158,17 +1267,19 @@ dependencies = [ [[package]] name = "jsonrpsee-core" -version = "0.22.2" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b75568f4f9696e3a47426e1985b548e1a9fcb13372a5e320372acaf04aca30d1" +checksum = "79712302e737d23ca0daa178e752c9334846b08321d439fd89af9a384f8c830b" dependencies = [ "anyhow", - "async-lock", "async-trait", "beef", + "bytes", "futures-timer", "futures-util", - "hyper", + "http 1.1.0", + "http-body", + "http-body-util", "jsonrpsee-types", "pin-project", "rustc-hash", @@ -1183,15 +1294,20 @@ dependencies = [ [[package]] name = "jsonrpsee-http-client" -version = "0.22.2" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e7a95e346f55df84fb167b7e06470e196e7d5b9488a21d69c5d9732043ba7ba" +checksum = "2d90064e04fb9d7282b1c71044ea94d0bbc6eff5621c66f1a0bce9e9de7cf3ac" dependencies = [ "async-trait", + "base64 0.22.1", + "http-body", "hyper", "hyper-rustls", + "hyper-util", "jsonrpsee-core", "jsonrpsee-types", + "rustls", + "rustls-platform-verifier", "serde", "serde_json", "thiserror", @@ -1203,37 +1319,58 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.22.2" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3467fd35feeee179f71ab294516bdf3a81139e7aeebdd860e46897c12e1a3368" +checksum = "d9c465fbe385238e861fdc4d1c85e04ada6c1fd246161d26385c1b311724d2af" dependencies = [ - "anyhow", "beef", + "http 1.1.0", "serde", "serde_json", "thiserror", ] [[package]] -name = "keccak" -version = "0.1.4" +name = "jsonrpsee-wasm-client" +version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +checksum = "4727ac037f834c6f04c0912cada7532dbddb54e92fbc64e33d6cb8c24af313c9" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "keccak" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" dependencies = [ "cpufeatures", ] [[package]] -name = "lazy_static" -version = "1.4.0" +name = "keccak-hash" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "4b286e6b663fb926e1eeb68528e69cb70ed46c6d65871a21b2215ae8154c6d3c" +dependencies = [ + "primitive-types", + "tiny-keccak", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.152" +version = "0.2.158" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" +checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" [[package]] name = "libm" @@ -1291,24 +1428,24 @@ dependencies = [ [[package]] name = "log" -version = "0.4.20" +version = "0.4.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" +checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" [[package]] name = "lru" -version = "0.12.1" +version = "0.12.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2994eeba8ed550fd9b47a0b38f0242bc3344e496483c6180b69139cc2fa5d1d7" +checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904" dependencies = [ "hashbrown", ] [[package]] name = "memchr" -version = "2.7.1" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "merlin" @@ -1322,6 +1459,16 @@ dependencies = [ "zeroize", ] +[[package]] +name = "minicov" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c71e683cd655513b99affab7d317deb690528255a0d5f717f1024093c12b169" +dependencies = [ + "cc", + "walkdir", +] + [[package]] name = "minimal-lexical" version = "0.2.1" @@ -1330,22 +1477,23 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.7.1" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +checksum = "b8a240ddb74feaf34a79a7add65a741f3167852fba007066dcac1ca548d89c08" dependencies = [ "adler", ] [[package]] name = "mio" -version = "0.8.10" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec" dependencies = [ + "hermit-abi", "libc", "wasi", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -1372,32 +1520,29 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.4.4" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" dependencies = [ - "autocfg", "num-integer", "num-traits", ] [[package]] name = "num-integer" -version = "0.1.45" +version = "0.1.46" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" dependencies = [ - "autocfg", "num-traits", ] [[package]] name = "num-rational" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" dependencies = [ - "autocfg", "num-bigint", "num-integer", "num-traits", @@ -1405,28 +1550,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.17" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] -[[package]] -name = "num_cpus" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" -dependencies = [ - "hermit-abi", - "libc", -] - [[package]] name = "object" -version = "0.32.2" +version = "0.36.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9" dependencies = [ "memchr", ] @@ -1439,9 +1574,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "openssl-probe" @@ -1451,11 +1586,11 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "parity-scale-codec" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "bitvec", "byte-slice-cast", "impl-trait-for-tuples", @@ -1465,27 +1600,21 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 2.0.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", ] -[[package]] -name = "parking" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" - [[package]] name = "paste" -version = "1.0.14" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" [[package]] name = "pbkdf2" @@ -1519,14 +1648,14 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "pin-project-lite" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" +checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02" [[package]] name = "pin-utils" @@ -1534,12 +1663,6 @@ version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" -[[package]] -name = "platforms" -version = "3.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" - [[package]] name = "poly1305" version = "0.8.0" @@ -1553,9 +1676,12 @@ dependencies = [ [[package]] name = "ppv-lite86" -version = "0.2.17" +version = "0.2.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" +dependencies = [ + "zerocopy", +] [[package]] name = "primitive-types" @@ -1582,12 +1708,11 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "2.0.1" +version = "3.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284" dependencies = [ - "toml_datetime", - "toml_edit 0.20.2", + "toml_edit 0.21.1", ] [[package]] @@ -1616,18 +1741,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.79" +version = "1.0.86" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e" +checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.35" +version = "1.0.36" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" dependencies = [ "proc-macro2", ] @@ -1669,24 +1794,42 @@ dependencies = [ ] [[package]] -name = "ring" -version = "0.17.7" +name = "reconnecting-jsonrpsee-ws-client" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74" +checksum = "06fa4f17e09edfc3131636082faaec633c7baa269396b4004040bc6c52f49f65" +dependencies = [ + "cfg_aliases", + "finito", + "futures", + "jsonrpsee", + "serde_json", + "thiserror", + "tokio", + "tracing", + "wasm-bindgen-futures", +] + +[[package]] +name = "ring" +version = "0.17.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" dependencies = [ "cc", + "cfg-if", "getrandom", "libc", "spin", "untrusted", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "rustc-demangle" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" +checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" @@ -1711,50 +1854,27 @@ dependencies = [ [[package]] name = "rustls" -version = "0.21.10" +version = "0.23.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" -dependencies = [ - "log", - "ring", - "rustls-webpki 0.101.7", - "sct", -] - -[[package]] -name = "rustls" -version = "0.22.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41" +checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" dependencies = [ "log", + "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.1", + "rustls-webpki", "subtle", "zeroize", ] [[package]] name = "rustls-native-certs" -version = "0.6.3" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" dependencies = [ "openssl-probe", - "rustls-pemfile 1.0.4", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-native-certs" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792" -dependencies = [ - "openssl-probe", - "rustls-pemfile 2.0.0", + "rustls-pemfile", "rustls-pki-types", "schannel", "security-framework", @@ -1762,44 +1882,52 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.4" +version = "2.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" dependencies = [ - "base64 0.21.6", -] - -[[package]] -name = "rustls-pemfile" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e4980fa29e4c4b212ffb3db068a564cbf560e51d3944b7c88bd8bf5bec64f4" -dependencies = [ - "base64 0.21.6", + "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.1.0" +version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e9d979b3ce68192e42760c7810125eb6cf2ea10efae545a156063e61f314e2a" +checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" [[package]] -name = "rustls-webpki" -version = "0.101.7" +name = "rustls-platform-verifier" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +checksum = "93bda3f493b9abe5b93b3e7e3ecde0df292f2bd28c0296b90586ee0055ff5123" dependencies = [ - "ring", - "untrusted", + "core-foundation", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki", + "security-framework", + "security-framework-sys", + "webpki-roots", + "winapi", ] [[package]] -name = "rustls-webpki" -version = "0.102.1" +name = "rustls-platform-verifier-android" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef4ca26037c909dedb327b48c3327d0ba91d3dd3c4e05dad328f210ffb68e95b" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + +[[package]] +name = "rustls-webpki" +version = "0.102.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e" dependencies = [ "ring", "rustls-pki-types", @@ -1819,44 +1947,53 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.16" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" +checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] [[package]] name = "scale-bits" -version = "0.4.0" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "036575c29af9b6e4866ffb7fa055dbf623fe7a9cc159b33786de6013a6969d89" +checksum = "e57b1e7f6b65ed1f04e79a85a57d755ad56d76fdf1e9bddcc9ae14f71fcdcf54" dependencies = [ "parity-scale-codec", "scale-info", + "scale-type-resolver", "serde", ] [[package]] name = "scale-decode" -version = "0.10.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7caaf753f8ed1ab4752c6afb20174f03598c664724e0e32628e161c21000ff76" +checksum = "e98f3262c250d90e700bb802eb704e1f841e03331c2eb815e46516c4edbf5b27" dependencies = [ "derive_more", "parity-scale-codec", "primitive-types", "scale-bits", "scale-decode-derive", - "scale-info", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-decode-derive" -version = "0.10.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3475108a1b62c7efd1b5c65974f30109a598b2f45f23c9ae030acb9686966db" +checksum = "9bb22f574168103cdd3133b19281639ca65ad985e24612728f727339dcaf4021" dependencies = [ "darling 0.14.4", - "proc-macro-crate 1.3.1", "proc-macro2", "quote", "syn 1.0.109", @@ -1864,24 +2001,24 @@ dependencies = [ [[package]] name = "scale-encode" -version = "0.5.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d70cb4b29360105483fac1ed567ff95d65224a14dd275b6303ed0a654c78de5" +checksum = "4ba0b9c48dc0eb20c60b083c29447c0c4617cb7c4a4c9fef72aa5c5bc539e15e" dependencies = [ "derive_more", "parity-scale-codec", "primitive-types", "scale-bits", "scale-encode-derive", - "scale-info", + "scale-type-resolver", "smallvec", ] [[package]] name = "scale-encode-derive" -version = "0.5.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "995491f110efdc6bea96d6a746140e32bfceb4ea47510750a5467295a4707a25" +checksum = "82ab7e60e2d9c8d47105f44527b26f04418e5e624ffc034f6b4a86c0ba19c5bf" dependencies = [ "darling 0.14.4", "proc-macro-crate 1.3.1", @@ -1892,9 +2029,9 @@ dependencies = [ [[package]] name = "scale-info" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f7d66a1128282b7ef025a8ead62a4a9fcf017382ec53b8ffbf4d7bf77bd3c60" +checksum = "eca070c12893629e2cc820a9761bedf6ce1dcddc9852984d1dc734b8bd9bd024" dependencies = [ "bitvec", "cfg-if", @@ -1906,34 +2043,44 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.10.0" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf2c68b89cafb3b8d918dd07b42be0da66ff202cf1155c5739a4e0c1ea0dc19" +checksum = "2d35494501194174bda522a32605929eefc9ecf7e0a326c26db1fdd85881eb62" dependencies = [ - "proc-macro-crate 1.3.1", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "scale-typegen" -version = "0.1.1" +name = "scale-type-resolver" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00860983481ac590ac87972062909bef0d6a658013b592ccc0f2feb272feab11" +checksum = "f0cded6518aa0bd6c1be2b88ac81bf7044992f0f154bfbabd5ad34f43512abcb" +dependencies = [ + "scale-info", + "smallvec", +] + +[[package]] +name = "scale-typegen" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "498d1aecf2ea61325d4511787c115791639c0fd21ef4f8e11e49dd09eff2bbac" dependencies = [ "proc-macro2", "quote", "scale-info", - "syn 2.0.48", + "syn 2.0.75", "thiserror", ] [[package]] name = "scale-value" -version = "0.13.0" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58223c7691bf0bd46b43c9aea6f0472d1067f378d574180232358d7c6e0a8089" +checksum = "ba4d772cfb7569e03868400344a1695d16560bf62b86b918604773607d39ec84" dependencies = [ "base58", "blake2", @@ -1945,6 +2092,7 @@ dependencies = [ "scale-decode", "scale-encode", "scale-info", + "scale-type-resolver", "serde", "yap", ] @@ -1966,7 +2114,7 @@ checksum = "8de18f6d8ba0aad7045f5feae07ec29899c1112584a38509a84ad7b04451eaa0" dependencies = [ "aead", "arrayref", - "arrayvec 0.7.4", + "arrayvec 0.7.6", "curve25519-dalek", "getrandom_or_panic", "merlin", @@ -1983,34 +2131,25 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" -[[package]] -name = "sct" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" -dependencies = [ - "ring", - "untrusted", -] - [[package]] name = "security-framework" -version = "2.9.2" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" dependencies = [ "bitflags", "core-foundation", "core-foundation-sys", "libc", + "num-bigint", "security-framework-sys", ] [[package]] name = "security-framework-sys" -version = "2.9.1" +version = "2.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" dependencies = [ "core-foundation-sys", "libc", @@ -2018,9 +2157,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "send_wrapper" @@ -2036,40 +2175,41 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.197" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.14" +version = "0.11.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734" +checksum = "387cc504cb06bb40a96c8e04e951fe01854cf6bc921053c954e4a606d9675c6a" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.197" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "serde_json" -version = "1.0.114" +version = "1.0.125" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0" +checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -2087,6 +2227,17 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha2" version = "0.9.9" @@ -2130,6 +2281,12 @@ dependencies = [ "lazy_static", ] +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + [[package]] name = "signature" version = "2.2.0" @@ -2138,9 +2295,9 @@ checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" [[package]] name = "siphasher" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ac45299ccbd390721be55b412d41931911f654fa99e2cb8bfb57184b2061fe" +checksum = "56199f7ddabf13fe5074ce809e7d3f42b42ae711800501b5b16ea82ad029c39d" [[package]] name = "slab" @@ -2153,9 +2310,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67" [[package]] name = "smoldot" @@ -2163,10 +2320,10 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d1eaa97d77be4d026a1e7ffad1bb3b78448763b357ea6f8188d3e6f736a9b9" dependencies = [ - "arrayvec 0.7.4", + "arrayvec 0.7.6", "async-lock", "atomic-take", - "base64 0.21.6", + "base64 0.21.7", "bip39", "blake2-rfc", "bs58", @@ -2175,7 +2332,7 @@ dependencies = [ "derive_more", "ed25519-zebra", "either", - "event-listener", + "event-listener 4.0.3", "fnv", "futures-lite", "futures-util", @@ -2205,7 +2362,7 @@ dependencies = [ "siphasher", "slab", "smallvec", - "soketto", + "soketto 0.7.1", "twox-hash", "wasmi", "x25519-dalek", @@ -2220,11 +2377,11 @@ checksum = "5496f2d116b7019a526b1039ec2247dd172b8670633b1a64a614c9ea12c9d8c7" dependencies = [ "async-channel", "async-lock", - "base64 0.21.6", + "base64 0.21.7", "blake2-rfc", "derive_more", "either", - "event-listener", + "event-listener 4.0.3", "fnv", "futures-channel", "futures-lite", @@ -2248,12 +2405,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.5.5" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c" dependencies = [ "libc", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] @@ -2272,10 +2429,25 @@ dependencies = [ ] [[package]] -name = "sp-crypto-hashing" -version = "15.0.0" +name = "soketto" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e0f4990add7b2cefdeca883c0efa99bb4d912cb2196120e1500c0cc099553b0" +checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures", + "httparse", + "log", + "rand", + "sha1", +] + +[[package]] +name = "sp-crypto-hashing" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc9927a7f81334ed5b8a98a4a978c81324d12bd9713ec76b5c68fd410174c5eb" dependencies = [ "blake2b_simd", "byteorder", @@ -2304,19 +2476,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] -name = "subtle" -version = "2.5.0" +name = "strsim" +version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "subxt" -version = "0.35.0" +version = "0.37.0" dependencies = [ "async-trait", - "base58", - "blake2", - "derivative", + "derive-where", "either", "frame-metadata 16.0.0", "futures", @@ -2327,6 +2503,7 @@ dependencies = [ "jsonrpsee", "parity-scale-codec", "primitive-types", + "reconnecting-jsonrpsee-ws-client", "scale-bits", "scale-decode", "scale-encode", @@ -2335,6 +2512,7 @@ dependencies = [ "serde", "serde_json", "sp-crypto-hashing", + "subxt-core", "subxt-lightclient", "subxt-macro", "subxt-metadata", @@ -2345,7 +2523,7 @@ dependencies = [ [[package]] name = "subxt-codegen" -version = "0.35.0" +version = "0.37.0" dependencies = [ "frame-metadata 16.0.0", "getrandom", @@ -2358,14 +2536,40 @@ dependencies = [ "scale-info", "scale-typegen", "subxt-metadata", - "syn 2.0.48", + "syn 2.0.75", "thiserror", "tokio", ] +[[package]] +name = "subxt-core" +version = "0.37.0" +dependencies = [ + "base58", + "blake2", + "derive-where", + "frame-metadata 16.0.0", + "hashbrown", + "hex", + "impl-serde", + "keccak-hash", + "parity-scale-codec", + "primitive-types", + "scale-bits", + "scale-decode", + "scale-encode", + "scale-info", + "scale-value", + "serde", + "serde_json", + "sp-crypto-hashing", + "subxt-metadata", + "tracing", +] + [[package]] name = "subxt-lightclient" -version = "0.35.0" +version = "0.37.0" dependencies = [ "futures", "futures-timer", @@ -2390,22 +2594,21 @@ dependencies = [ [[package]] name = "subxt-macro" -version = "0.35.0" +version = "0.37.0" dependencies = [ - "darling 0.20.8", + "darling 0.20.10", "parity-scale-codec", "proc-macro-error", "quote", "scale-typegen", "subxt-codegen", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "subxt-metadata" -version = "0.35.0" +version = "0.37.0" dependencies = [ - "derive_more", "frame-metadata 16.0.0", "hashbrown", "parity-scale-codec", @@ -2426,9 +2629,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.48" +version = "2.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" dependencies = [ "proc-macro2", "quote", @@ -2443,39 +2646,48 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "thiserror" -version = "1.0.58" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297" +checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.58" +version = "1.0.63" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7" +checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "thread_local" -version = "1.1.7" +version = "1.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c" dependencies = [ "cfg-if", "once_cell", ] [[package]] -name = "tinyvec" -version = "1.6.0" +name = "tiny-keccak" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinyvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938" dependencies = [ "tinyvec_macros", ] @@ -2488,58 +2700,47 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.36.0" +version = "1.39.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" dependencies = [ "backtrace", "bytes", "libc", "mio", - "num_cpus", "pin-project-lite", "socket2", "tokio-macros", - "windows-sys 0.48.0", + "windows-sys 0.52.0", ] [[package]] name = "tokio-macros" -version = "2.2.0" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "tokio-rustls" -version = "0.24.1" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.21.10", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f" -dependencies = [ - "rustls 0.22.2", + "rustls", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" dependencies = [ "futures-core", "pin-project-lite", @@ -2548,9 +2749,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.10" +version = "0.7.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" dependencies = [ "bytes", "futures-core", @@ -2558,14 +2759,13 @@ dependencies = [ "futures-sink", "pin-project-lite", "tokio", - "tracing", ] [[package]] name = "toml_datetime" -version = "0.6.3" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" +checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" [[package]] name = "toml_edit" @@ -2580,9 +2780,9 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.20.2" +version = "0.21.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1" dependencies = [ "indexmap", "toml_datetime", @@ -2599,6 +2799,7 @@ dependencies = [ "futures-util", "pin-project", "pin-project-lite", + "tokio", "tower-layer", "tower-service", "tracing", @@ -2606,15 +2807,15 @@ dependencies = [ [[package]] name = "tower-layer" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" [[package]] name = "tower-service" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" [[package]] name = "tracing" @@ -2636,7 +2837,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -2707,9 +2908,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.14" +version = "0.3.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f2528f27a9eb2b21e69c95319b30bd0efd85d09c379741b0f78ea1d86be2416" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" @@ -2719,9 +2920,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" dependencies = [ "tinyvec", ] @@ -2744,9 +2945,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" [[package]] name = "url" -version = "2.5.0" +version = "2.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c" dependencies = [ "form_urlencoded", "idna", @@ -2755,9 +2956,19 @@ dependencies = [ [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] [[package]] name = "want" @@ -2776,34 +2987,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8" +checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" dependencies = [ "cfg-if", + "once_cell", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da" +checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.39" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac36a15a220124ac510204aec1c3e5db8a22ab06fd6706d881dc6149f8ed9a12" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", @@ -2813,9 +3025,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726" +checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2823,31 +3035,32 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7" +checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.92" +version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96" +checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasm-bindgen-test" -version = "0.3.39" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cf9242c0d27999b831eae4767b2a146feb0b27d332d553e605864acd2afd403" +checksum = "68497a05fb21143a08a7d24fc81763384a3072ee43c44e86aad1744d6adef9d9" dependencies = [ "console_error_panic_hook", "js-sys", + "minicov", "scoped-tls", "wasm-bindgen", "wasm-bindgen-futures", @@ -2856,13 +3069,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.39" +version = "0.3.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "794645f5408c9a039fd09f4d113cdfb2e7eba5ff1956b07bcf701cf4b394fe89" +checksum = "4b8220be1fa9e4c889b30fd207d4906657e7e90b12e0e6b0c8b8d8709f5de021" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] @@ -2880,9 +3093,9 @@ dependencies = [ [[package]] name = "wasmi" -version = "0.31.1" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acfc1e384a36ca532d070a315925887247f3c7e23567e23e0ac9b1c5d6b8bf76" +checksum = "77a8281d1d660cdf54c76a3efa9ddd0c270cada1383a995db3ccb43d166456c7" dependencies = [ "smallvec", "spin", @@ -2893,9 +3106,9 @@ dependencies = [ [[package]] name = "wasmi_arena" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "401c1f35e413fac1846d4843745589d9ec678977ab35a384db8ae7830525d468" +checksum = "104a7f73be44570cac297b3035d76b169d6599637631cf37a1703326a0727073" [[package]] name = "wasmi_core" @@ -2911,160 +3124,150 @@ dependencies = [ [[package]] name = "wasmparser-nostd" -version = "0.100.1" +version = "0.100.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9157cab83003221bfd385833ab587a039f5d6fa7304854042ba358a3b09e0724" +checksum = "d5a015fe95f3504a94bb1462c717aae75253e39b9dd6c3fb1062c934535c64aa" dependencies = [ "indexmap-nostd", ] [[package]] name = "web-sys" -version = "0.3.67" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", ] [[package]] -name = "windows-sys" -version = "0.48.0" +name = "webpki-roots" +version = "0.26.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" dependencies = [ - "windows-targets 0.48.5", + "rustls-pki-types", ] +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb" +dependencies = [ + "windows-sys 0.59.0", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + [[package]] name = "windows-sys" version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets 0.52.0", + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets", ] [[package]] name = "windows-targets" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "windows_aarch64_gnullvm 0.48.5", - "windows_aarch64_msvc 0.48.5", - "windows_i686_gnu 0.48.5", - "windows_i686_msvc 0.48.5", - "windows_x86_64_gnu 0.48.5", - "windows_x86_64_gnullvm 0.48.5", - "windows_x86_64_msvc 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" -dependencies = [ - "windows_aarch64_gnullvm 0.52.0", - "windows_aarch64_msvc 0.52.0", - "windows_i686_gnu 0.52.0", - "windows_i686_msvc 0.52.0", - "windows_x86_64_gnu 0.52.0", - "windows_x86_64_gnullvm 0.52.0", - "windows_x86_64_msvc 0.52.0", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] name = "windows_aarch64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" [[package]] name = "windows_i686_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" [[package]] -name = "windows_i686_gnu" -version = "0.52.0" +name = "windows_i686_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" [[package]] name = "windows_i686_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" [[package]] name = "windows_x86_64_gnu" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" [[package]] name = "windows_x86_64_msvc" -version = "0.48.5" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.5.34" +version = "0.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7cf47b659b318dccbd69cc4797a39ae128f533dce7902a1096044d1967b9c16" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" dependencies = [ "memchr", ] @@ -3080,9 +3283,9 @@ dependencies = [ [[package]] name = "x25519-dalek" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb66477291e7e8d2b0ff1bcb900bf29489a9692816d79874bea351e7a8b6de96" +checksum = "c7e468321c81fb07fa7f4c636c3972b9100f0346e5b6a9f2bd0603a52f7ed277" dependencies = [ "curve25519-dalek", "rand_core", @@ -3098,29 +3301,30 @@ checksum = "ff4524214bc4629eba08d78ceb1d6507070cc0bcbbed23af74e19e6e924a24cf" [[package]] name = "zerocopy" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" dependencies = [ + "byteorder", "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.7.32" +version = "0.7.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] [[package]] name = "zeroize" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" dependencies = [ "zeroize_derive", ] @@ -3133,5 +3337,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.48", + "syn 2.0.75", ] From 648581796e139af2857e78ae8f9ce301e6f16447 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:43:10 +0200 Subject: [PATCH 100/137] build(deps): bump clap from 4.5.15 to 4.5.16 (#1715) Bumps [clap](https://github.com/clap-rs/clap) from 4.5.15 to 4.5.16. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.15...clap_complete-v4.5.16) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- Cargo.lock | 6 +++--- Cargo.toml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b51c598f5c..5ae5f241a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -869,9 +869,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.15" +version = "4.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d8838454fda655dafd3accb2b6e2bea645b9e4078abe84a22ceb947235c5cc" +checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" dependencies = [ "clap_builder", "clap_derive", @@ -4885,7 +4885,7 @@ dependencies = [ name = "subxt-cli" version = "0.37.0" dependencies = [ - "clap 4.5.15", + "clap 4.5.16", "color-eyre", "frame-metadata 16.0.0", "heck 0.5.0", diff --git a/Cargo.toml b/Cargo.toml index fa229d80ae..443a878bf2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -68,7 +68,7 @@ assert_matches = "1.5.0" base58 = { version = "0.2.0" } bitvec = { version = "1", default-features = false } blake2 = { version = "0.10.6", default-features = false } -clap = { version = "4.5.15", features = ["derive", "cargo"] } +clap = { version = "4.5.16", features = ["derive", "cargo"] } cfg-if = "1.0.0" criterion = "0.4" codec = { package = "parity-scale-codec", version = "3.6.9", default-features = false } From 359603f01427dea115e824ef98ff5dcb49a2879d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 11:54:04 +0200 Subject: [PATCH 101/137] build(deps): bump tokio from 1.39.2 to 1.39.3 (#1714) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.39.2 to 1.39.3. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.39.2...tokio-1.39.3) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson Co-authored-by: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5ae5f241a7..dbfff40eaf 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5193,9 +5193,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.2" +version = "1.39.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" dependencies = [ "backtrace", "bytes", From dbd05b4fd92ae2d2c9f9b12da7ffd72ca0da49b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:21:03 +0200 Subject: [PATCH 102/137] build(deps): bump js-sys from 0.3.69 to 0.3.70 (#1716) * build(deps): bump js-sys from 0.3.69 to 0.3.70 Bumps [js-sys](https://github.com/rustwasm/wasm-bindgen) from 0.3.69 to 0.3.70. - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) --- updated-dependencies: - dependency-name: js-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * update Cargo.lock * update Cargo.lock --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson Co-authored-by: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- testing/wasm-rpc-tests/Cargo.lock | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dbfff40eaf..ee8c19a411 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2443,9 +2443,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d" +checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" dependencies = [ "wasm-bindgen", ] diff --git a/Cargo.toml b/Cargo.toml index 443a878bf2..c14e0dbbaa 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -128,7 +128,7 @@ pin-project = "1.1.5" web-sys = { version = "0.3.69", features = ["BinaryType", "CloseEvent", "MessageEvent", "WebSocket"] } wasm-bindgen = "0.2.93" send_wrapper = "0.6.0" -js-sys = "0.3.69" +js-sys = "0.3.70" wasm-bindgen-futures = "0.4.42" futures-timer = "3" instant = { version = "0.1.13", default-features = false } diff --git a/testing/wasm-rpc-tests/Cargo.lock b/testing/wasm-rpc-tests/Cargo.lock index 775b8392bb..c32ad2358c 100644 --- a/testing/wasm-rpc-tests/Cargo.lock +++ b/testing/wasm-rpc-tests/Cargo.lock @@ -916,9 +916,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa82e28a107a8cc405f0839610bdc9b15f1e25ec7d696aa5cf173edbcb1486ab" +checksum = "524e8ac6999421f49a846c2d4411f337e53497d8ec55d67753beffa43c5d9205" dependencies = [ "atomic-waker", "bytes", From a8c36346ebe8a64bb46bfc01687bdd45b7e796a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:44:51 +0200 Subject: [PATCH 103/137] build(deps): bump serde from 1.0.206 to 1.0.208 (#1717) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.206 to 1.0.208. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.206...v1.0.208) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Niklas Adolfsson Co-authored-by: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ee8c19a411..a4af8dcac6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4067,9 +4067,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.206" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b3e4cd94123dd520a128bcd11e34d9e9e423e7e3e50425cb1b4b1e3549d0284" +checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" dependencies = [ "serde_derive", ] @@ -4085,9 +4085,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.206" +version = "1.0.208" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fabfb6138d2383ea8208cf98ccf69cdfb1aff4088460681d84189aa259762f97" +checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index c14e0dbbaa..39ddb19f9c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -99,7 +99,7 @@ scale-decode = { version = "0.13.1", default-features = false } scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" -serde = { version = "1.0.206", default-features = false, features = ["derive"] } +serde = { version = "1.0.208", default-features = false, features = ["derive"] } serde_json = { version = "1.0.124", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" From 270f74a0b39ff2e94e214ce02d79f2e75c177f47 Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Wed, 21 Aug 2024 17:07:29 +0100 Subject: [PATCH 104/137] Update Artifacts (auto-generated) (#1712) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> Co-authored-by: Niklas Adolfsson --- artifacts/demo_chain_specs/polkadot.json | 8 ++++---- artifacts/polkadot_metadata_full.scale | Bin 420501 -> 420403 bytes .../src/full_client/codegen/polkadot.rs | 9 +++------ 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 5aede1066f..270c3a8671 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x04f9dcb41739ffaeb90c2efe05eb96d3de0342af32eb5d431f6ae28dcd3784df64dc6450010173d81e1100000000d3e11e11000000000460f8f800d2698867bd658a17bb42f540fdce0c1812e1ae2f1b00f36ba1bf32db376e500101d3e11e110000000033eb1e11000000000423482790b128f33a2a7e73023ca20d505601e8bae80f27ef4b5d7bb86f76de9e8c7750010133eb1e110000000093f41e110000000000000c23482790b128f33a2a7e73023ca20d505601e8bae80f27ef4b5d7bb86f76de9e8c775001010f2400000000000033eb1e11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a710100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000002a0d15d6e631555b5904347855792d651a650925014930238a295df7aa7bb11c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec2981701000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac71190100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000034e3e57f02e4112c03ef9025c94c5b6f373c7a3c7bf3a9d39af79f40f4ce5d35010000000000000004000000000000000260f8f800d2698867bd658a17bb42f540fdce0c1812e1ae2f1b00f36ba1bf32db376e5001010e24000000000000d3e11e11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a710100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000002a0d15d6e631555b5904347855792d651a650925014930238a295df7aa7bb11c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec2981701000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac71190100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000e1dabbe9e6ab12024e83c0381635bfdc34052aae4e15e9d3903b9ca48c2822500100000000000000040000000000000002f9dcb41739ffaeb90c2efe05eb96d3de0342af32eb5d431f6ae28dcd3784df64dc645001010d2400000000000073d81e11000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000aec89788ac4b8bfa3d2d1bcb5ed00c4dfd23fa8a3a831bd15157d58b628d4a710100000000000000ca454487facfe1263c4ff3b1c5a83a4c832b9b6b8bc7c1accea4111b24276d1e010000000000000026db7c5786fddc15f7e96905024905d877537451ed444cb97d3786361a59f64b01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000d4511d18a3b781ea85a501111b8b88086340e89d06ba1771aba4c7767f1bc41f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000e4ba5ffce05c90e6a5eea52b15922b6b3a78d13ca98f53fdbe08e5c24ce3c8410100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000b67901c634d88e9fb569bc2ebf68245208b6568f1bbabae78ffe77f42c5d963d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a0100000000000000521bae95445956648f3caf334f86bf86a5da4cb473fa3368be2b55db02130e3d01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a010000000000000080c4603361b35d83eb9195126bfd81d8f1c49182c48e8f18e7ea772ff2bfd9400100000000000000e2d8807911771f762fef5e4fc3b9685517fe91c48292ec59b4ce13f95bc8ee5d0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e010000000000000088f9a16886165d00612032cb1b36669ad62b7325536f499191e711134c71b6070100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000006a4284a9ea438f75390f6547faad885b235c208634da73a79e2e61c51a7cb41001000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb1832001000000000000005461977495f9c407a8d951e860a1cb2087592103229bdbd879629cc538a4182b0100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000092bb282d46ed819e46fb3ee929f7662354fd095b67a8ed51326b47e83f86653a010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc8318691030100000000000000d051b4dfed8fdb829387340e3127a51b0d96127ed5837d044bd3344650e30b0c01000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000ea5f39a2c4fe3caf9e91f3efa5602b4746d5a9c945371f9a3e75b7b8b787fe450100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e01000000000000008c62b1f359699a717b4f05196ce1a08c3da1cfc9f16f240e366ada12dc738d5c0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a01000000000000003ccae309d11414375378df7e5327f13108fd45401d7be1b05a91f2556cdb781601000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b0100000000000000840290d318350bff32db3dcf6138b822cb2adf1dedf5bad8729471988955915c01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d01000000000000002a402f806b62a9e063c2a2029b732d629e35c65cf567a650f4171487f2584432010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b1590401000000000000009a1f039be698fd2a5dd4ffcca6a804eea737f5e216b6c932a7fad2f4afca1f70010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e01000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e2220100000000000000f875192456a53adc29b095319d261874ec86a4f35b37330e96a19b2a7fb36670010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a0100000000000000c6ac76a6bb70dfe6f7bf1e96793c011842148482eb1320b8deeaf0a8d1f1c1210100000000000000aa10acf573bdc361275e96a6cbc4f7b0cb76f070edd22553385c122784dd4076010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd040100000000000000fccd6669b7bc06e46fd619ea3a5c9aea181a268106ab29df21fd3b29f908d42b01000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000047e42afb61bd0d49aeed1975a96c8398a0ec4643fcf5625cac5b22c097a02590100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca2201000000000000002a0d15d6e631555b5904347855792d651a650925014930238a295df7aa7bb11c0100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000fa5a4da949ce29dd0fc20fe56c40d63ffded8e2dd88844f725efda0814ed5264010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f8039861010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000a8c829d26481aca8cf5dfe19802502f38a09cc04a9bf9e822670be402951532c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c01000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c2770801000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a080400100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b01000000000000002037d70f4c244c81422409ad01d28d72a30d26e595fbcc791daeb57f78a85670010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e010000000000000088c32710e8a71cf0e9dc4b3b411cf05f7a55daed6f034c999e5f6d4284a4291c0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe880080100000000000000b4a8220fe27bf97dd00951c08fed26fbee5d994d2011e40c317d2750140548170100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000d23c53a531e356646133db73065cd83999693a5bdfc05931238434f5b031522f0100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000465242c8915eea46e25549f2ab97cfe78784f25083e51773e07d5a0cafc2de3201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000163687f38841bbbd2b93787f7f65cc74a2ab94478888abce52207e1b81f46c4d0100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd27010000000000000000ac029d5e4ce570bafb50b677fed13d43eefcf0075b3ae2520be959c9782f1201000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf4601000000000000001221c54f7ff9df4e16af3af6f73fbac26d74567c6f56c39870d41bc794500070010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d0100000000000000fabb2b0da4ca16719276859b39435fe03981cfae311132fefef26362e5b10d1d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000a00d1123af89696bab60139de3614a090c1af3dc569a65c7c9e81f82b3962d220100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd816010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000001c103b038f0515bb77061128200e1f117a531cb4474cf5f9430535345f54196701000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000da0104efa240fbd625eaea38be5ccff1aa0d7b0d06e81b1e703705ff7ec2981701000000000000007e9d2c36d09a42bdb2e7ae241b2c449d510ec316519090cac748047383d14e730100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b620100000000000000aaacf7e3f28a79d60f265e61e221138a65e9c07983dba8a8e82162d615ac71190100000000000000ba62b825b6f2f1b8fe9e88849969d8236d58c1ef23b0a32bec7347b75fb8f14601000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000046839ba1d96dc96f93db4efb792e7a57143f6e94f20d9a32b5cdfc716aa76150100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000003657957258a68fc8186c3216b696a7027753d5e5fa58cb092ca69dbae25e0f9c0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5505385, - "finalizedBlockHeader": "0x52f00faaabb006057807bd57a9d72028a20f60a59f9b788c2f6dc4aa5be5153842e541058c20092b40638bc037e60b9ab351b19082f50048200a9987aa47abd9b138b73189dff803be37eaf7012b89cdf3eb01bea7b4c490b5165aa3eebe3d3a5fc531ce0c0642414245b501036500000097e31e1100000000986d2d1478ffe006ab55c3d49eaed724fc49b7e30a0b06360c9cad5accf8a96a37802cf6715cb56053308dae3636a92b1ddf5911df350b5a28eeca15c0996006bb2834465d62b0d93c0eff722a5ae9fcca3705e322332c792b5e4b946c49d00504424545468403299f83124e4cddac5470ce91be67f39b8d86c42dc0abf951fb93e62318d3917805424142450101daf8e5cdb99891cc651b0397d1bf9ce8b7f1f183a403a38f37d83a85d9b29b10dd6ac8a07eb62836c8b3968e0790c68775d6a36a5683996db9010c0abe85ed89", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000c406ffbebce8cdece918edf454d780aa298c8134a8f73848c856a9bc00c4b1b10100000000000000e910e45c162a4e9ae379bfcca70ac2165ce37f72652ef16898e86fd54f85ec110100000000000000116768c765c7ce5a5e895a5342d1f56f1a118901d8d36fe584bab325506f3b280100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc201000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda01000000000000003c21e6b2c737dceab5af9474c6aae7453f0d028265b1feec8b74d720355bcc790100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000094a9bcd15e4fcd86b34e42a581a07dbfc190832003306ce3c069cf73718cb973010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000f7e159462ec9dc0e54c6f6b8a83c4b551ee91613cad4208bbd563f16418328710100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b01000000000000004f921e651aac48305df584f38608e4cd23bb3ddadc66045f1bd2aa91022434610100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000001149000b901ac2d711a780c28e84f8a35b2bbdbeff02cdb03f324e6573438d8c01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000bd7acc9ffa9ec1eed06acaf6a0f4f48ff10f83681b19e55ebc4c3a969df2e2ce01000000000000005f1a6f53d3bc80af21811c76e22269c1d3dddf9b86c8b8d2faa3a1f92d830f810100000000000000f982823f5e08ba1c697a854a2e0b41544c63749a892c961dd4f3cf5b1f716bd501000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf010000000000000041763df8284ae8248ee0f649982ffc7d4f613e07c7bb83cd554aca5dcf8f56250100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf01000000000000004aba091c9780c816178de034989c81d3907dbb6eb129bfa9c93c368d4709b9b40100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000507b0289bfb2f55c7a62ec3c3298690909013c916dd5885b05b330fdc0caf1270100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f9401000000000000004a68c3ada00a5c4248e74840b836cdb87eec6adbf99dabbb90a8ded6e04de6c60100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae0101000000000000002d575e29f7c1ea23bce864823ab34822606c5f0207bd18f471c9881a8c0e9d990100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000fb3a06e07b02896157fdc7230199503899221cd21bacdd79d2469adb1cc39ece010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde6172800100000000000000918101a49e7531de481c1195af2ceff4c01b9146e9206d92f789642bae8fe7fa01000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000e5df12b672ff723fb3a00817d48fa27843bc7854328dfed88bb0e4afed20b65a01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000007c6dcd08a7dae2fed7a44e3ef208d86e2a4c41694f0154d0e1194fa3644ad96401000000000000004d04ebdd4185dee9609536d870ba5d984a6fa435aeb1fb611c4de06d57345b7a01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff0100000000000000df0e4e9682f279ad20dd38e231a8441b0f7fba20f4c4e88e731c39f02a3eeda20100000000000000f3300017c9cadc38d61b118edd05c0540768521f88c5092215e47a9d0403fc7a01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd50100000000000000fd3d1c4982441db21060e8834c5ccb6331e81fbfa01756770dfe297d5038ac950100000000000000099a9eb71f9cb1b7d15eae384790b4ec35045a19acea1730ba62f3e7caf31e8b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b50921290701000000000000003ab5af195d3e54bba57e395b1b69920bbee9a5169aa1ee8ed0ab97422528e949010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000068a8e1ed303440fb10c05a39e73361bf01f4137d5573d517df902645884ed240100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e0100000000000000798d28848cf6e642e3148e0a250ab346b5f21a81d5496141318ff57b5766f46801000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b49727292401000000000000009be52a6b66e1daecf1abe913bfe4bb0cc07e1025b0f594be94c6003b526ec33b0100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000ff5d4070a8a7798cd22dbc7a7e2a909b697e738683e701aeff696af26ebff07201000000000000008077fd93f4073cf25aef527807c9ce1d5c02c447edeec07b02bc52f139f8c7730100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c5901000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af0100000000000000147db701e00ffe84da179a84aab9c3653deb77e8ee867358e1035df1bc58f862010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e1570100000000000000a365d380f814469e02a328965f1d945d86f52a5b28e8ae22f004eb78a68154ae010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000005ec6b4116bab9f5accdc7d894fe0a36a34a2939a5023ddf95a2137c371796af10100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c20100000000000000546ce2099b3863d2d75324d5866bfd5324d8ee4701a99dd53528f8a8c898ca48010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000bb7045a8da399663f16cc865bc2406716150aa804da56ddbabaad386064acdad0100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000096c6301cf86ba237ec1b24c7d9b6cd3b872492d26d58d54a8050f18785af33450100000000000000447661b3b799d8f7665d765a485467a5a03536c33cf1d8f5208c384e55f11ea6010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a46810100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b0100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000007e11db40409c32a4261679bc520ee8ce4af31944d19b1faf2158299e905e72801000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000e0df5b2f299314d2d419b46d15c3c8a739182d91c3d4b98cd16c013c3a25c04b01000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f3635909284001000000000000009490e6013f4342845494fc817104edf1f307c62e7c0d7c04405aedfd0a37232b0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000a1668d081fc10b48f6630f96778f17b202fc2f353ce1bc24568b829ee464305f0100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b38501000000000000005db4206baa8706a1b1de0ac7edacbd2a2c93452481808b8fe6c582265b57a60d0100000000000000f8e50e8b63b242e30e5bd266584b6fc690817455d2eac1e04d146dfc1dd3614d010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb0100000000000000a82f563264d1892dd46873205d03c098d8b03f53e21c797839737e4e5f66a87e010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000b79f919442f4ca5ac9195fd09a1239b1a80bd225f8372f1b36a24a8c55de61f20100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f601000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c80100000000000000d02d870053a31afc4984a7a9c5e458804d8f589eed67f2a6249d7787f1ea45670100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000cffc9fb5e5403c75c8a4e3a270affdeced91b6db5ef38cc3058c36b79cf77b6501000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c01000000000000002fbe3b1b79ed47d070067479266ad9b30732c4b8f6170c8888a1ad5365053e760100000000000000d45705ecc1f19f97d4ba95b672c4514c65d286dd5af9b8c21ef9c28073855c970100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c01000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e00100000000000000e6489beb573734e417fa040e59af4e44789001fad63f5df871818cc70714e6d001000000000000005ee516fa4c351fb4adcb522658cf7531eac3b2b3365a647cd8d7c7681e146458010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d301000000000000007104becc86b2517ee166201faadeec93e4150bbde0fed50e99f68f427f5af8780100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000004d960a5b5cfc68f32236a14f5e094ec24c9bd0f73df19086c27cff9a78fd5dbb01000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000aa7c33f99de85adfe5ab929090294916df6bdd9a1cc75f632058509f4e1a9bb4010000000000000016479e0260f7e880df4484572cd15dda1d7ac47201a2eac1a11d8ec2c748b3cb0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a4010000000000000098c77f59e959418f0817c0fb327b8790c4fb0f8068a1c01fa8620db63e1cb3e801000000000000002dd8b91790e7023f68c52021f40fe08a5769eb7e3f3a6f6c8a54454012a5497401000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c90066528010000000000000097485aff1573c42971da2d363dd00e29dd61c8e285d100ace0347bfdb6b5981701000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b01000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff2740100000000000000c5ca85d7f46a61b5153a44b17020a6f2bb0f05635321e283971a1a2909f8e820010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000005f08000000000000000150795001007d2100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e0158080000000000001d144f015908000000000000284c4f015a0800000000000043844f015b080000000000005ebc4f015c080000000000006ff44f015d08000000000000a32c50015e08000000000000dc645001" + "babeEpochChanges": "0x04c4d287d16aa6a99001b7369a79ce17b5f9c6b707fc2c34cd2ca0fc30e4cb3bacc8ec5101013362201100000000936b20110000000004f79e7b8c7f41f9f6297113733078e1de9bceb8c2ae6e98dc0bd88305efb25bdb26f6510101936b201100000000f3742011000000000472371de044271abfc4f0d0c43024507ba3481f9f5fafdc6cf46bb262f11fbb4e84ff510101f374201100000000537e20110000000000000c72371de044271abfc4f0d0c43024507ba3481f9f5fafdc6cf46bb262f11fbb4e84ff5101013924000000000000f3742011000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000483162f76015c107b3943aa377a79f7b378f0edd20aa4157ee27d7145f16ee460100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c9550100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000206402d1388f980477176331a5ab31e497661e3a3af657ddba514d9cb30fc7310100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e420100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf540010000000000000058b7a7f1cd0e086bcbee23208f71b6e4ed49d53f96959ffb58280ee03c40e77701000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c4701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd81601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000000256d96c6b5aab42a37408cd4b04faaed7930184edd2946a8f7df40e4709ec260100000000000000040000000000000002c4d287d16aa6a99001b7369a79ce17b5f9c6b707fc2c34cd2ca0fc30e4cb3bacc8ec510101372400000000000033622011000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000483162f76015c107b3943aa377a79f7b378f0edd20aa4157ee27d7145f16ee460100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c9550100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000206402d1388f980477176331a5ab31e497661e3a3af657ddba514d9cb30fc7310100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e420100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf540010000000000000058b7a7f1cd0e086bcbee23208f71b6e4ed49d53f96959ffb58280ee03c40e77701000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c4701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd81601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000c0e13165cb738a2bc0d4203436aa9c8780e355e912ea2f43419a3717bff4f6370100000000000000040000000000000002f79e7b8c7f41f9f6297113733078e1de9bceb8c2ae6e98dc0bd88305efb25bdb26f65101013824000000000000936b2011000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000483162f76015c107b3943aa377a79f7b378f0edd20aa4157ee27d7145f16ee460100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c9550100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000206402d1388f980477176331a5ab31e497661e3a3af657ddba514d9cb30fc7310100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e420100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf540010000000000000058b7a7f1cd0e086bcbee23208f71b6e4ed49d53f96959ffb58280ee03c40e77701000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c4701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd81601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000030af163694f320f4f18b858dccfa1d89d928e8fb85b28657ff28b83605cd297d0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5530701, + "finalizedBlockHeader": "0x55db0eb74c600e2c8c84f073aab1e6e8c39858d8ee43a9190e317890ed9901fd0e054805feb3ec4ca668205bfef5f660acf1e1128c8240db61e4ac0e58e00317f1e3ea2832e96903a8257272c971e426113dcfb40fe5aa028e38c25fbb9b19f61f4c668f0c0642414245b5010373000000526d2011000000004cc9960ff7b7b519121a5e89780e4b67a7172984bd98f6c3d83d58286794e92a20de63cf8d7112c8fa91e0a66a637d4ac383ad4f0b8ee157e981e6a579cf130a1ecfae8674a933b3a8a9cbc297805ad891ce2a23d83d3024e0b859300080e00304424545468403f50f8c8a0ca413567d538625a4c7c7d3fe5fbca117ff824029fcfda623dfc26905424142450101d6649b52a63f8969984ce39bc463c600da64fc813b89590d430163c7d55a845cc988bce68408a95c1939a10a18a29c0756a04b150273d54db5b00483f08a8f8d", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000001bae9b223279cf7f43805d7158bc4a31a981be184f969784091af289f854a0a80100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000fe5f4f4b0b7e9232250a6b1cb8cd1375849a10e4db4d8f6a50064c576d8820560100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f420100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec8010000000000000057c55b2bbb6b86d6e9aedef9b51904ec5b29d8c1271308aa625fa445532738320100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a501000000000000000a99dd033adaa3b1f8d09d59f99d113201b99b9699efde3f2eec4c1170924d570100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000bb60743c9aa7dcc48846b6dc1d95923d34e62dc184d9e4d99f0a8de40e8ba3b8010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000094a9bcd15e4fcd86b34e42a581a07dbfc190832003306ce3c069cf73718cb973010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000065dc7fefab39364b5669a360cfd3576a24742b82c646f97d0fc49386de6e0a4101000000000000007de9970a903513e5e8d0429c3671130008fc950d6d02c31d3b1746b6d839f39e0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000007977808620ade75f3efeb26b0926229e0817c6163399f1d48f39ece8159c9ec201000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000000824dbb04482c2d264795086d3bf3a71471072c9af664c10e4b90ba7f9ccfa5201000000000000000074497472b01dc3a0c379b9622ca2579b14b0ae540e10ad655afdbf8bb1d249010000000000000059e1632ee9e89f2f3e9639752821767c15fe25db7fa0c5f475d732c59a0a645001000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b5801000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b0100000000000000700f01e62a9c97bb86cb5bbb57ac20c74af3695fcef14ebea1f133d3a9253cc701000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000fb3a06e07b02896157fdc7230199503899221cd21bacdd79d2469adb1cc39ece010000000000000086cddc46c9a3a42c3821183d597e76872f1d4904b84a92e8160ab4e0fb4d39a8010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000f174f78ebad0cfa91c428395afbad3e448bd958d10481a6a439028ea7d95b3d701000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000007f6fe3b417c26965a21ccf584140ae4705672bf1a20f5164e1e39af1378cbd0901000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff010000000000000064c7595df1bbbafa64066afd55b368dce0d349053eecb2e0d76eb41099dfed2d01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000dfa95a3c8b7a217c1cf1d9ef878a26ea611691ad1e765bac7b1313654505a89e0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd50100000000000000a717e6564944b5d85787a33a53ccece07dcd37ce2f375b4e356c328858ac475b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000048630433999edabfc2790d3f5cf47a5ae499e2fdc3c4a9abc04a98da29c368b6010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b509212907010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d0100000000000000faa7af0f76a660a8c8c89fabf7290f2938798fcf0d522902d5d8b1d3a177e05d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000e05521afa0e7c1526a49e1ca6ec5c5386673607cf6e53d223611850f51d37fcb0100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb010000000000000051f30c189018e3ea45d60393bfd4e7e690bae78908458616537a362329a4309c0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe30d30ace5295db295a2e6592e7990ddeaa9f1a07abded61bcce0b6392626080100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b0100000000000000a9e971cbeb8697f20eba2c82dd0c1205b590c5413dce534bb48f0478c76dcfe6010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c590100000000000000fb267d8f26a35c34d58b4dc0633cf56f5eb6882ec873270dfbb0e55c64404dc101000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e157010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c2010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000c3e4afee23a9fa0f291d0789dd41b4c0bcadf40b12e7ec3be5532dd1e7709da01000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000096c6301cf86ba237ec1b24c7d9b6cd3b872492d26d58d54a8050f18785af33450100000000000000447661b3b799d8f7665d765a485467a5a03536c33cf1d8f5208c384e55f11ea6010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee6330100000000000000782d67d8a58da40c6284ad38a9b05123333ab060654b9b063e877762fc4ba173010000000000000002246d9cae89005f399a6a68cd771ad53b52c5d557c17716b873fd42260e4f7b010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b01000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000007e11db40409c32a4261679bc520ee8ce4af31944d19b1faf2158299e905e7280100000000000000edcb49c54783d276bf63f9d99bc74b76b30c95840c637174df7a7521a1b8c1b301000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000cdce828c6b62da7b39b46a6cf22aa1f2254781d9ed8f693f97d640f45239f68201000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000193dfdde1c1e8f0d91530a15b8eab00e255cc2dd6b19e689868120922f79a5bb01000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000c96f4bcdb9d46096e4e60da9acce9c761463ff38563368feddfccab6135923ad01000000000000005c0ce76a2fbef3a0df89ae8c2bedac4e288c3679c33701980624c9ffcca9103b0100000000000000aae265f73abaf1fdfc01a798c357cddeb8467caae251b123ea3ecd94a6f2d9bf0100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b3850100000000000000f8e50e8b63b242e30e5bd266584b6fc690817455d2eac1e04d146dfc1dd3614d010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f601000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c80100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000d45705ecc1f19f97d4ba95b672c4514c65d286dd5af9b8c21ef9c28073855c970100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000a7dcf50fb724298ea61a8dbf24c81f866ed48708e1c2f914472f195aaf1313d101000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e00100000000000000e6489beb573734e417fa040e59af4e44789001fad63f5df871818cc70714e6d0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d301000000000000007104becc86b2517ee166201faadeec93e4150bbde0fed50e99f68f427f5af8780100000000000000eaaf51c4db0ac374aee2c43ce34866dbce4db52f43096392566898f8570d988f0100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000b14d7eb2d5f956e23a7407b7cc5ba971171d0ac45169351ccc6f836c9ae796730100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a401000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe901000000000000007d52bfdaa12a3af4707178d1d94e668fc092ba0055f2111c4bcf5bffa08729ef0100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000053bbc598c69604e82050d2008b95b491ce8c826dc39a2e300437ffacc86d52ef01000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff2740100000000000000c5ca85d7f46a61b5153a44b17020a6f2bb0f05635321e283971a1a2909f8e820010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000006708000000000000000143015201009d2100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e0158080000000000001d144f015908000000000000284c4f015a0800000000000043844f015b080000000000005ebc4f015c080000000000006ff44f015d08000000000000a32c50015e08000000000000dc6450015f08000000000000f19c5001600800000000000005d550016108000000000000f70c51016208000000000000014551016308000000000000a35751016408000000000000d87c51016508000000000000a7b451016608000000000000c8ec5101" }, "name": "Polkadot", "properties": { diff --git a/artifacts/polkadot_metadata_full.scale b/artifacts/polkadot_metadata_full.scale index f2d57ad66574925413b86f290545a39e3b952ea8..c3e6baec19cbfb4dd79d8d841b6452b433cc6023 100644 GIT binary patch delta 44 ycmbPwRdVwc$%Yoj7N!>FEiA#Nj0)RBOj!b%ra#)vtkkY)!2-mr+choNa*P0BSq>Zk delta 142 zcmdmdMRMv@$%Yoj7N!>FEiA#Nj4InhOj!b%5+(fdo%4%J7&urW8U6AVN-~qPQ%e-e zGfOfQ5*3nxG79C1#R^5KC8b4qsVNFcl?u@b&iQ$1ndw$mK)N_HCABEABr`uRAy%Oz qU!k}pzbI9qBqLR!peQvnH!(eR`orDK%I(L^S%8>z`*Cx&93udOSTcbC diff --git a/testing/integration-tests/src/full_client/codegen/polkadot.rs b/testing/integration-tests/src/full_client/codegen/polkadot.rs index 9cd95deb4b..0a35bbfccd 100644 --- a/testing/integration-tests/src/full_client/codegen/polkadot.rs +++ b/testing/integration-tests/src/full_client/codegen/polkadot.rs @@ -5186,9 +5186,9 @@ pub mod api { .hash(); runtime_metadata_hash == [ - 181u8, 152u8, 254u8, 172u8, 141u8, 227u8, 59u8, 167u8, 125u8, 162u8, 198u8, 209u8, - 160u8, 57u8, 51u8, 43u8, 237u8, 206u8, 219u8, 146u8, 253u8, 241u8, 122u8, 23u8, - 97u8, 161u8, 65u8, 161u8, 209u8, 215u8, 85u8, 24u8, + 158u8, 48u8, 71u8, 167u8, 227u8, 1u8, 77u8, 26u8, 185u8, 145u8, 32u8, 196u8, 238u8, + 43u8, 15u8, 7u8, 79u8, 6u8, 178u8, 214u8, 58u8, 241u8, 149u8, 231u8, 44u8, 59u8, + 109u8, 111u8, 131u8, 144u8, 115u8, 169u8, ] } pub mod system { @@ -58115,9 +58115,6 @@ pub mod api { #[codec(index = 7)] #[doc = "Too few hashes were requested to be upgraded (i.e. zero)."] TooFew, - #[codec(index = 8)] - #[doc = "No ticket with a cost was returned by [`Config::Consideration`] to store the preimage."] - NoCost, } #[derive( :: subxt :: ext :: subxt_core :: ext :: codec :: Decode, From a8a700cb2094be145a2ecefee2a2f38cdf663416 Mon Sep 17 00:00:00 2001 From: Femi Olah Date: Fri, 23 Aug 2024 12:55:34 +0100 Subject: [PATCH 105/137] Add Hyperbridge as a subxt user to README (#1721) * Adds Hyperbridge * update description * Remove extra space --------- Co-authored-by: James Wilson --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index dd75354ad3..70bc57a7b9 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,7 @@ Please add your project to this list via a PR. - [polkadot-introspector](https://github.com/paritytech/polkadot-introspector) Tools for monitoring Polkadot nodes. - [ink!](https://github.com/paritytech/ink) Smart contract language that uses `subxt` for allowing developers to conduct [End-to-End testing](https://use.ink/basics/contract-testing/end-to-end-e2e-testing) of their contracts. - [Chainflip](https://github.com/chainflip-io/chainflip-backend) A decentralised exchange for native cross-chain swaps. +- [Hyperbridge](https://github.com/polytope-labs/hyperbridge) A hyperscalable coprocessor for verifiable cross-chain interoperability. **Alternatives** From c7ccc58e69705ca7194eee54c7e9b3082124b667 Mon Sep 17 00:00:00 2001 From: Jonathan Brown Date: Fri, 23 Aug 2024 23:52:46 +0700 Subject: [PATCH 106/137] Support loading keys from Polkadot-JS accounts. (#1661) * Import key pair from JSON. * Get secret. * Fix JSON decryption. * Fix error handling. * Fix warnings. * Add polkadot-js links. * Fix packages. * Fix json feature. * Add copyright message. * Update Cargo.toml Co-authored-by: Niklas Adolfsson * Improve error handling. * Expect that provided parameters are valid. * Add Scrypt parameters comment from JS implementation. * Fix expect() message * Make from_ed25519_bytes() pub(crate) * Rename json feature to polkadot-js-compat * Add comment about polkadot-js-compat dependencies. Co-authored-by: James Wilson * Add decrypt_json() public method. * json.rs -> polkadot_js_compat.rs * Simplify JSON structs. * Only declare from_ed25519_bytes() with polkadot-js-compat * Move decrypt_json() to top of file. * Don't enable new crates on std feature * Avoid enabling a couple of existing optional crates on std feature --------- Co-authored-by: Jonathan Brown Co-authored-by: Niklas Adolfsson Co-authored-by: James Wilson --- Cargo.lock | 55 +++++++- Cargo.toml | 3 + signer/Cargo.toml | 21 ++- signer/src/lib.rs | 5 + signer/src/polkadot_js_compat.rs | 213 +++++++++++++++++++++++++++++++ signer/src/sr25519.rs | 16 +++ 6 files changed, 304 insertions(+), 9 deletions(-) create mode 100644 signer/src/polkadot_js_compat.rs diff --git a/Cargo.lock b/Cargo.lock index a4af8dcac6..748612f839 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -541,9 +541,9 @@ checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" [[package]] name = "base64" -version = "0.22.0" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "base64ct" @@ -853,6 +853,7 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" dependencies = [ "crypto-common", "inout", + "zeroize", ] [[package]] @@ -1174,6 +1175,21 @@ dependencies = [ "subtle", ] +[[package]] +name = "crypto_secretbox" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1" +dependencies = [ + "aead", + "cipher", + "generic-array", + "poly1305", + "salsa20", + "subtle", + "zeroize", +] + [[package]] name = "curve25519-dalek" version = "3.2.0" @@ -2470,7 +2486,7 @@ version = "0.23.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08163edd8bcc466c33d79e10f695cdc98c00d1e6ddfb95cec41b6b0279dd5432" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "futures-channel", "futures-util", "gloo-net", @@ -2523,7 +2539,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2d90064e04fb9d7282b1c71044ea94d0bbc6eff5621c66f1a0bce9e9de7cf3ac" dependencies = [ "async-trait", - "base64 0.22.0", + "base64 0.22.1", "http-body", "hyper", "hyper-rustls", @@ -3060,6 +3076,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" dependencies = [ "digest 0.10.7", + "hmac 0.12.1", "password-hash", ] @@ -3689,7 +3706,7 @@ version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "rustls-pki-types", ] @@ -3772,6 +3789,15 @@ version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" +[[package]] +name = "salsa20" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213" +dependencies = [ + "cipher", +] + [[package]] name = "same-file" version = "1.0.6" @@ -3981,6 +4007,18 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" +[[package]] +name = "scrypt" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0516a385866c09368f0b5bcd1caff3366aace790fcd46e2bb032697bb172fd1f" +dependencies = [ + "password-hash", + "pbkdf2", + "salsa20", + "sha2 0.10.8", +] + [[package]] name = "sec1" version = "0.7.3" @@ -4377,7 +4415,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "37468c595637c10857701c990f93a40ce0e357cedb0953d1c26c8d8027f9bb53" dependencies = [ - "base64 0.22.0", + "base64 0.22.1", "bytes", "futures", "httparse", @@ -5019,9 +5057,11 @@ dependencies = [ name = "subxt-signer" version = "0.37.0" dependencies = [ + "base64 0.22.1", "bip32", "bip39", "cfg-if", + "crypto_secretbox", "getrandom", "hex", "hex-literal", @@ -5032,8 +5072,11 @@ dependencies = [ "proptest", "regex", "schnorrkel", + "scrypt", "secp256k1", "secrecy", + "serde", + "serde_json", "sha2 0.10.8", "sp-core", "sp-crypto-hashing", diff --git a/Cargo.toml b/Cargo.toml index 39ddb19f9c..61688b900c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -162,6 +162,9 @@ keccak-hash = { version = "0.10.0", default-features = false } secrecy = "0.8.0" sha2 = { version = "0.10.8", default-features = false } zeroize = { version = "1", default-features = false } +base64 = { version = "0.22.1", default-features = false } +scrypt = { version = "0.11.0", default-features = false } +crypto_secretbox = { version = "0.1.1", default-features = false } [profile.dev.package.smoldot-light] opt-level = 2 diff --git a/signer/Cargo.toml b/signer/Cargo.toml index 17356a9722..6018483970 100644 --- a/signer/Cargo.toml +++ b/signer/Cargo.toml @@ -23,8 +23,13 @@ std = [ "sha2/std", "hmac/std", "bip39/std", - "schnorrkel/std", - "secp256k1/std", + "schnorrkel?/std", + "secp256k1?/std", + "serde?/std", + "serde_json?/std", + "base64?/std", + "scrypt?/std", + "crypto_secretbox?/std", ] # Pick the signer implementation(s) you need by enabling the @@ -35,6 +40,9 @@ sr25519 = ["schnorrkel"] ecdsa = ["secp256k1"] unstable-eth = ["keccak-hash", "ecdsa", "secp256k1", "bip32"] +# Enable support for loading key pairs from polkadot-js json. +polkadot-js-compat = ["std", "subxt", "sr25519", "base64", "scrypt", "crypto_secretbox", "serde", "serde_json"] + # Make the keypair algorithms here compatible with Subxt's Signer trait, # so that they can be used to sign transactions for compatible chains. subxt = ["dep:subxt-core"] @@ -66,6 +74,13 @@ secp256k1 = { workspace = true, optional = true, features = [ ] } keccak-hash = { workspace = true, optional = true } +# These are used if the polkadot-js-compat feature is enabled +serde = { workspace = true, optional = true } +serde_json = { workspace = true, optional = true } +base64 = { workspace = true, optional = true, features = ["alloc"] } +scrypt = { workspace = true, default-features = false, optional = true } +crypto_secretbox = { workspace = true, optional = true, features = ["alloc", "salsa20"] } + # We only pull this in to enable the JS flag for schnorrkel to use. getrandom = { workspace = true, optional = true } @@ -86,4 +101,4 @@ rustdoc-args = ["--cfg", "docsrs"] defalt-features = true [lints] -workspace = true \ No newline at end of file +workspace = true diff --git a/signer/src/lib.rs b/signer/src/lib.rs index 23865bf81c..7b1fdc3174 100644 --- a/signer/src/lib.rs +++ b/signer/src/lib.rs @@ -37,6 +37,11 @@ pub mod ecdsa; #[cfg_attr(docsrs, doc(cfg(feature = "unstable-eth")))] pub mod eth; +/// A polkadot-js account json loader. +#[cfg(feature = "polkadot-js-compat")] +#[cfg_attr(docsrs, doc(cfg(feature = "polkadot-js-compat")))] +pub mod polkadot_js_compat; + // Re-export useful bits and pieces for generating a Pair from a phrase, // namely the Mnemonic struct. pub use bip39; diff --git a/signer/src/polkadot_js_compat.rs b/signer/src/polkadot_js_compat.rs new file mode 100644 index 0000000000..b90f87efa6 --- /dev/null +++ b/signer/src/polkadot_js_compat.rs @@ -0,0 +1,213 @@ +// Copyright 2019-2024 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +//! A Polkadot-JS account loader. + +use base64::Engine; +use core::fmt::Display; +use crypto_secretbox::{ + aead::{Aead, KeyInit}, + Key, Nonce, XSalsa20Poly1305, +}; +use serde::Deserialize; +use subxt_core::utils::AccountId32; + +use crate::sr25519; + +/// Given a JSON keypair as exported from Polkadot-JS, this returns an [`sr25519::Keypair`] +pub fn decrypt_json(json: &str, password: &str) -> Result { + let pair_json: KeyringPairJson = serde_json::from_str(json)?; + Ok(pair_json.decrypt(password)?) +} + +/// Error +#[derive(Debug)] +pub enum Error { + /// Error decoding JSON. + Json(serde_json::Error), + /// The keypair has an unsupported encoding. + UnsupportedEncoding, + /// Base64 decoding error. + Base64(base64::DecodeError), + /// Wrong Scrypt parameters + UnsupportedScryptParameters { + /// N + n: u32, + /// p + p: u32, + /// r + r: u32, + }, + /// Decryption error. + Secretbox(crypto_secretbox::Error), + /// sr25519 keypair error. + Sr25519(sr25519::Error), + /// The decrypted keys are not valid. + InvalidKeys, +} + +impl_from!(serde_json::Error => Error::Json); +impl_from!(base64::DecodeError => Error::Base64); +impl_from!(crypto_secretbox::Error => Error::Secretbox); +impl_from!(sr25519::Error => Error::Sr25519); + +impl Display for Error { + fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { + match self { + Error::Json(e) => write!(f, "Invalid JSON: {e}"), + Error::UnsupportedEncoding => write!(f, "Unsupported encoding."), + Error::Base64(e) => write!(f, "Base64 decoding error: {e}"), + Error::UnsupportedScryptParameters { n, p, r } => { + write!(f, "Unsupported Scrypt parameters: N: {n}, p: {p}, r: {r}") + } + Error::Secretbox(e) => write!(f, "Decryption error: {e}"), + Error::Sr25519(e) => write!(f, "{e}"), + Error::InvalidKeys => write!(f, "The decrypted keys are not valid."), + } + } +} + +#[cfg(feature = "std")] +impl std::error::Error for Error {} + +#[derive(Deserialize)] +struct EncryptionMetadata { + /// Descriptor for the content + content: Vec, + /// The encoding (in current/latest versions this is always an array) + r#type: Vec, + /// The version of encoding applied + version: String, +} + +/// https://github.com/polkadot-js/common/blob/37fa211fdb141d4f6eb32e8f377a4651ed2d9068/packages/keyring/src/types.ts#L67 +#[derive(Deserialize)] +struct KeyringPairJson { + /// The encoded string + encoded: String, + /// The encoding used + encoding: EncryptionMetadata, + /// The ss58 encoded address or the hex-encoded version (the latter is for ETH-compat chains) + address: AccountId32, +} + +// This can be removed once split_array is stabilized. +fn slice_to_u32(slice: &[u8]) -> u32 { + u32::from_le_bytes(slice.try_into().expect("Slice should be 4 bytes.")) +} + +impl KeyringPairJson { + /// Decrypt JSON keypair. + fn decrypt(self, password: &str) -> Result { + // Check encoding. + // https://github.com/polkadot-js/common/blob/37fa211fdb141d4f6eb32e8f377a4651ed2d9068/packages/keyring/src/keyring.ts#L166 + if self.encoding.version != "3" + || !self.encoding.content.contains(&"pkcs8".to_owned()) + || !self.encoding.content.contains(&"sr25519".to_owned()) + || !self.encoding.r#type.contains(&"scrypt".to_owned()) + || !self + .encoding + .r#type + .contains(&"xsalsa20-poly1305".to_owned()) + { + return Err(Error::UnsupportedEncoding); + } + + // Decode from Base64. + let decoded = base64::engine::general_purpose::STANDARD.decode(self.encoded)?; + let params: [u8; 68] = decoded[..68] + .try_into() + .map_err(|_| Error::UnsupportedEncoding)?; + + // Extract scrypt parameters. + // https://github.com/polkadot-js/common/blob/master/packages/util-crypto/src/scrypt/fromU8a.ts + let salt = ¶ms[0..32]; + let n = slice_to_u32(¶ms[32..36]); + let p = slice_to_u32(¶ms[36..40]); + let r = slice_to_u32(¶ms[40..44]); + + // FIXME At this moment we assume these to be fixed params, this is not a great idea + // since we lose flexibility and updates for greater security. However we need some + // protection against carefully-crafted params that can eat up CPU since these are user + // inputs. So we need to get very clever here, but atm we only allow the defaults + // and if no match, bail out. + if n != 32768 || p != 1 || r != 8 { + return Err(Error::UnsupportedScryptParameters { n, p, r }); + } + + // Hash password. + let scrypt_params = + scrypt::Params::new(15, 8, 1, 32).expect("Provided parameters should be valid."); + let mut key = Key::default(); + scrypt::scrypt(password.as_bytes(), salt, &scrypt_params, &mut key) + .expect("Key should be 32 bytes."); + + // Decrypt keys. + // https://github.com/polkadot-js/common/blob/master/packages/util-crypto/src/json/decryptData.ts + let cipher = XSalsa20Poly1305::new(&key); + let nonce = Nonce::from_slice(¶ms[44..68]); + let ciphertext = &decoded[68..]; + let plaintext = cipher.decrypt(nonce, ciphertext)?; + + // https://github.com/polkadot-js/common/blob/master/packages/keyring/src/pair/decode.ts + if plaintext.len() != 117 { + return Err(Error::InvalidKeys); + } + + let header = &plaintext[0..16]; + let secret_key = &plaintext[16..80]; + let div = &plaintext[80..85]; + let public_key = &plaintext[85..117]; + + if header != [48, 83, 2, 1, 1, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32] + || div != [161, 35, 3, 33, 0] + { + return Err(Error::InvalidKeys); + } + + // Generate keypair. + let keypair = sr25519::Keypair::from_ed25519_bytes(secret_key)?; + + // Ensure keys are correct. + if keypair.public_key().0 != public_key + || keypair.public_key().to_account_id() != self.address + { + return Err(Error::InvalidKeys); + } + + Ok(keypair) + } +} + +#[cfg(test)] +mod test { + use super::*; + + #[test] + fn test_get_keypair_sr25519() { + let json = r#" + { + "encoded": "DumgApKCTqoCty1OZW/8WS+sgo6RdpHhCwAkA2IoDBMAgAAAAQAAAAgAAAB6IG/q24EeVf0JqWqcBd5m2tKq5BlyY84IQ8oamLn9DZe9Ouhgunr7i36J1XxUnTI801axqL/ym1gil0U8440Qvj0lFVKwGuxq38zuifgoj0B3Yru0CI6QKEvQPU5xxj4MpyxdSxP+2PnTzYao0HDH0fulaGvlAYXfqtU89xrx2/z9z7IjSwS3oDFPXRQ9kAdDebtyCVreZ9Otw9v3", + "encoding": { + "content": [ + "pkcs8", + "sr25519" + ], + "type": [ + "scrypt", + "xsalsa20-poly1305" + ], + "version": "3" + }, + "address": "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY", + "meta": { + "genesisHash": "", + "name": "Alice", + "whenCreated": 1718265838755 + } + } + "#; + decrypt_json(json, "whoisalice").unwrap(); + } +} diff --git a/signer/src/sr25519.rs b/signer/src/sr25519.rs index 2a9eb84ecd..77ee6a113b 100644 --- a/signer/src/sr25519.rs +++ b/signer/src/sr25519.rs @@ -122,6 +122,18 @@ impl Keypair { Ok(Keypair(keypair)) } + /// Construct a keypair from a slice of bytes, corresponding to + /// an Ed25519 expanded secret key. + #[cfg(feature = "polkadot-js-compat")] + pub(crate) fn from_ed25519_bytes(bytes: &[u8]) -> Result { + let secret_key = schnorrkel::SecretKey::from_ed25519_bytes(bytes)?; + + Ok(Keypair(schnorrkel::Keypair { + public: secret_key.to_public(), + secret: secret_key, + })) + } + /// Derive a child key from this one given a series of junctions. /// /// # Example @@ -199,10 +211,13 @@ pub enum Error { Phrase(bip39::Error), /// Invalid hex. Hex(hex::FromHexError), + /// Signature error. + Signature(schnorrkel::SignatureError), } impl_from!(bip39::Error => Error::Phrase); impl_from!(hex::FromHexError => Error::Hex); +impl_from!(schnorrkel::SignatureError => Error::Signature); impl Display for Error { fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result { @@ -210,6 +225,7 @@ impl Display for Error { Error::InvalidSeed => write!(f, "Invalid seed (was it the wrong length?)"), Error::Phrase(e) => write!(f, "Cannot parse phrase: {e}"), Error::Hex(e) => write!(f, "Cannot parse hex string: {e}"), + Error::Signature(e) => write!(f, "Signature error: {e}"), } } } From c693f9244cf8d85e5a4fe41ed9fe5c53c442489d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:19:03 +0300 Subject: [PATCH 107/137] build(deps): bump web-sys from 0.3.69 to 0.3.70 (#1724) Bumps [web-sys](https://github.com/rustwasm/wasm-bindgen) from 0.3.69 to 0.3.70. - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) --- updated-dependencies: - dependency-name: web-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 748612f839..be7d17282b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -6019,9 +6019,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.69" +version = "0.3.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef" +checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/Cargo.toml b/Cargo.toml index 61688b900c..e5441ea299 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -125,7 +125,7 @@ rand = "0.8.5" pin-project = "1.1.5" # Light client wasm: -web-sys = { version = "0.3.69", features = ["BinaryType", "CloseEvent", "MessageEvent", "WebSocket"] } +web-sys = { version = "0.3.70", features = ["BinaryType", "CloseEvent", "MessageEvent", "WebSocket"] } wasm-bindgen = "0.2.93" send_wrapper = "0.6.0" js-sys = "0.3.70" From 415aae54c25d86561ed05f001245728b468568ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:19:15 +0300 Subject: [PATCH 108/137] build(deps): bump serde from 1.0.208 to 1.0.209 (#1725) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.208 to 1.0.209. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.208...v1.0.209) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index be7d17282b..61426c55fe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4105,9 +4105,9 @@ checksum = "cd0b0ec5f1c1ca621c432a25813d8d60c88abe6d3e08a3eb9cf37d97a0fe3d73" [[package]] name = "serde" -version = "1.0.208" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" dependencies = [ "serde_derive", ] @@ -4123,9 +4123,9 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.209" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" dependencies = [ "proc-macro2", "quote", diff --git a/Cargo.toml b/Cargo.toml index e5441ea299..304cbe0351 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -99,7 +99,7 @@ scale-decode = { version = "0.13.1", default-features = false } scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" -serde = { version = "1.0.208", default-features = false, features = ["derive"] } +serde = { version = "1.0.209", default-features = false, features = ["derive"] } serde_json = { version = "1.0.124", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" From cba0d26b99d9b692540cff6ec21aa0c406ee9a9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:19:29 +0300 Subject: [PATCH 109/137] build(deps): bump wasm-bindgen-futures from 0.4.42 to 0.4.43 (#1727) Bumps [wasm-bindgen-futures](https://github.com/rustwasm/wasm-bindgen) from 0.4.42 to 0.4.43. - [Release notes](https://github.com/rustwasm/wasm-bindgen/releases) - [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/main/CHANGELOG.md) - [Commits](https://github.com/rustwasm/wasm-bindgen/commits) --- updated-dependencies: - dependency-name: wasm-bindgen-futures dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 61426c55fe..46f94ca9d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5796,9 +5796,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0" +checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed" dependencies = [ "cfg-if", "js-sys", diff --git a/Cargo.toml b/Cargo.toml index 304cbe0351..3637eb4ebc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -129,7 +129,7 @@ web-sys = { version = "0.3.70", features = ["BinaryType", "CloseEvent", "Message wasm-bindgen = "0.2.93" send_wrapper = "0.6.0" js-sys = "0.3.70" -wasm-bindgen-futures = "0.4.42" +wasm-bindgen-futures = "0.4.43" futures-timer = "3" instant = { version = "0.1.13", default-features = false } tokio-util = "0.7.11" From 75bdb0c688b9d99c0a28861cd2b4c7f327fdb48c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:19:46 +0300 Subject: [PATCH 110/137] build(deps): bump quote from 1.0.36 to 1.0.37 (#1728) Bumps [quote](https://github.com/dtolnay/quote) from 1.0.36 to 1.0.37. - [Release notes](https://github.com/dtolnay/quote/releases) - [Commits](https://github.com/dtolnay/quote/compare/1.0.36...1.0.37) --- updated-dependencies: - dependency-name: quote dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 46f94ca9d3..bd7957f779 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3416,9 +3416,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" dependencies = [ "proc-macro2", ] diff --git a/Cargo.toml b/Cargo.toml index 3637eb4ebc..250ea0cfb3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -90,7 +90,7 @@ pretty_assertions = "1.4.0" primitive-types = { version = "0.12.2", default-features = false } proc-macro-error = "1.0.4" proc-macro2 = "1.0.86" -quote = "1.0.36" +quote = "1.0.37" regex = { version = "1.10.6", default-features = false } scale-info = { version = "2.11.3", default-features = false } scale-value = { version = "0.16.2", default-features = false } From 06a1c3f74174f0674ebabe1bbd35872240c14edf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 13:46:38 +0200 Subject: [PATCH 111/137] build(deps): bump serde_json from 1.0.124 to 1.0.127 (#1726) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.124 to 1.0.127. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.124...1.0.127) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index bd7957f779..e6aeadaba8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4134,9 +4134,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.124" +version = "1.0.127" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "66ad62847a56b3dba58cc891acd13884b9c61138d330c0d7b6181713d4fce38d" +checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" dependencies = [ "itoa", "memchr", diff --git a/Cargo.toml b/Cargo.toml index 250ea0cfb3..77aa2856f2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -100,7 +100,7 @@ scale-encode = { version = "0.7.1", default-features = false } scale-typegen = "0.8.0" scale-typegen-description = "0.8.0" serde = { version = "1.0.209", default-features = false, features = ["derive"] } -serde_json = { version = "1.0.124", default-features = false } +serde_json = { version = "1.0.127", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" tokio = { version = "1.39", default-features = false } From 69b09a8246f305a5436acf60e74430f516a68a17 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Tue, 27 Aug 2024 11:32:22 +0200 Subject: [PATCH 112/137] fix: enable dependabot for all crates (#1729) --- .github/dependabot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e36427e4ae..41c14f5145 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,7 +1,7 @@ version: 2 updates: - package-ecosystem: "cargo" - directory: "/" + directory: "**/*" schedule: interval: weekly ignore: @@ -13,6 +13,6 @@ updates: - dependency-name: sp-crypto-hashing - dependency-name: sp-version - package-ecosystem: github-actions - directory: '/' + directory: "**/*" schedule: interval: weekly From c5af479f2629c01da7a481d7f8490b7b87bfbe18 Mon Sep 17 00:00:00 2001 From: "paritytech-subxt-pr-maker[bot]" <159533160+paritytech-subxt-pr-maker[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 10:34:58 +0100 Subject: [PATCH 113/137] Update Artifacts (auto-generated) (#1723) Co-authored-by: tadeohepperle <62739623+tadeohepperle@users.noreply.github.com> --- artifacts/demo_chain_specs/polkadot.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/artifacts/demo_chain_specs/polkadot.json b/artifacts/demo_chain_specs/polkadot.json index 270c3a8671..b12e5c6f6b 100644 --- a/artifacts/demo_chain_specs/polkadot.json +++ b/artifacts/demo_chain_specs/polkadot.json @@ -45,10 +45,10 @@ }, "id": "polkadot", "lightSyncState": { - "babeEpochChanges": "0x04c4d287d16aa6a99001b7369a79ce17b5f9c6b707fc2c34cd2ca0fc30e4cb3bacc8ec5101013362201100000000936b20110000000004f79e7b8c7f41f9f6297113733078e1de9bceb8c2ae6e98dc0bd88305efb25bdb26f6510101936b201100000000f3742011000000000472371de044271abfc4f0d0c43024507ba3481f9f5fafdc6cf46bb262f11fbb4e84ff510101f374201100000000537e20110000000000000c72371de044271abfc4f0d0c43024507ba3481f9f5fafdc6cf46bb262f11fbb4e84ff5101013924000000000000f3742011000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000483162f76015c107b3943aa377a79f7b378f0edd20aa4157ee27d7145f16ee460100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c9550100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000206402d1388f980477176331a5ab31e497661e3a3af657ddba514d9cb30fc7310100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e420100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf540010000000000000058b7a7f1cd0e086bcbee23208f71b6e4ed49d53f96959ffb58280ee03c40e77701000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c4701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd81601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b1401000000000000000256d96c6b5aab42a37408cd4b04faaed7930184edd2946a8f7df40e4709ec260100000000000000040000000000000002c4d287d16aa6a99001b7369a79ce17b5f9c6b707fc2c34cd2ca0fc30e4cb3bacc8ec510101372400000000000033622011000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000483162f76015c107b3943aa377a79f7b378f0edd20aa4157ee27d7145f16ee460100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c9550100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000206402d1388f980477176331a5ab31e497661e3a3af657ddba514d9cb30fc7310100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e420100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf540010000000000000058b7a7f1cd0e086bcbee23208f71b6e4ed49d53f96959ffb58280ee03c40e77701000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c4701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd81601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000c0e13165cb738a2bc0d4203436aa9c8780e355e912ea2f43419a3717bff4f6370100000000000000040000000000000002f79e7b8c7f41f9f6297113733078e1de9bceb8c2ae6e98dc0bd88305efb25bdb26f65101013824000000000000936b2011000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d80380100000000000000643fa48931f2331b61ce9664acef49522251d1e671490d50d48aebdab81c2b3101000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe3872010000000000000028f8aa31d1f6e654cebfdbb2405e15b04e444a2d8360a85792ed6473c9d072590100000000000000da663fef002e63d5de9676a1a930abe7b0d8088657d67a3f24076bce08c66149010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a40010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000fcb61efa15d0129d908d4e39e71d0ee80b7a594daa69184549a710de116f3e4701000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e0100000000000000deaca72177e503b67352543438a2c993ea8c195a56cd3310b65adef7ae59336c01000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e0100000000000000a6f10752adf745ad55866031836194ad027ed8d6710d9853ef62982bcf45fd0e010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b230100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000064838c162c251bc34c0f5a2696183fb518527d4681821dbc3ad53b004a8da722010000000000000040d75cf8b71a877fe38bc79a2d3aebc8349e7a4200bb381b8d91fbfa17d045520100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b0100000000000000d45c05ddabd9507b070fabe6279abc6fd743ddfcf7c38e2d608b1e9934cf50040100000000000000eee3ac7ed417e76933ba1d1e656c63c1bd63d513c40efd99c080e597e3f38b750100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d0100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b981001000000000000004c50abd9279d48439dc8f93aaf679e47981f25372b63d838786dcaf7a3f8d074010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a0100000000000000483162f76015c107b3943aa377a79f7b378f0edd20aa4157ee27d7145f16ee460100000000000000943cbee5cf13f33059fd6f36b6adc4cfdc7b478643d95e43188f06fceb7aa44f0100000000000000fed982982c9812d445111f72923287a83ca2df7f3d265b2179ba6c82bc2cc13a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a0100000000000000ee0c4369d7e5dca53a68ef223db7c858f2a97f47394c7bc678a8edf719a49e13010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c39070100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f0100000000000000501de4cc157c785c636cc64133c1007854734aecac20df032a602d6effa2414901000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc421290100000000000000220d3f26072ad42aa5ca04b7253284d185f8bf95650faa170cbda8d7a47ea84a01000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e43113010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000c473d994ae0f9b8532523f5ebc52014bb3fad20e68770fceaf80fa105cbefd0d0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000da98e4363908fa4d7980fe5574ceeac74fae49bf77b3a191654c7731214a565e0100000000000000e8b3e7a94bd8d764602280361c60ee7e60eb1dac109cc133c0d4494da99661260100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec979010000000000000084d777d943e0507c27e43f6e6ab2ad2683ac9b37ae47cb5f063b636902672f38010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000daeb270a28cecb3752e26270b136566efbb5109ee0bae5e69d91d9bf7d58c9550100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000f894d159aa4b63402119985e2243e77fc35787fb086867659412c8c6918b2a670100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c0201101000000000000000e2daa2ef7884bdc7ca5f843f4f33f070c790e9a19d314bceefd04622920216301000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d589865010000000000000072982682e5dc1fc30858ab246ae9c93c136cf42a99a6c85d7b64cc77c5fe3f3e010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc740100000000000000f259a1355699c7b5ef71820c5e04d9e6436dd8844d347ddf84f7325dd93a6059010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000206402d1388f980477176331a5ab31e497661e3a3af657ddba514d9cb30fc7310100000000000000767cb742c94b22fff80da70a4ea77069aecde7ded53fbf5d957b01196924cd2d0100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea840010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e420100000000000000b8078a637992d8ea9a9c69698e8d210e22a11ada348183259f085843f517f45601000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb240100000000000000464cb5dfedc6938caef6caaf5a58f4925a295f24a4f37337033dafa0cc733e660100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba116010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000feebe707a9a5eb136d04e5b3b2124627fa76129c1e33cba1d1323047f76b3f220100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000dc3315aa503f5a62969286280b24dfa028c893f18173cea60e0765083cddb81701000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf540010000000000000058b7a7f1cd0e086bcbee23208f71b6e4ed49d53f96959ffb58280ee03c40e77701000000000000000037209a5aff5c2868e4c3620e7a4616904f42358df96498d4fd8ef5f9322a0601000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b2001000000000000008c7e4271cb1d28f71abac3f793ef73f2261851662e11cf165e5d7b0f40a0804001000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a5501000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000c28c2dbe1a9bc290af0d795ef11c1d1b694b91ae685e891e599596aaafbab73b010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a2efedf54df076e24d204b3921a835a47cd3afa7cc50a25b756bc6d72a13c4701000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000001c88716b5b460f0dd2d9bf20854e5fe51eff6470322642a8b0f20d731d7f355c0100000000000000f4ed2eb79bd9daf9391a340eb452db9890c60d98b97c4cfe17560367f422a8540100000000000000243fc8a61c1f7d74f8e90a8cedb03056041aea1feb71e12bf7b60439cbdd136201000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a010000000000000032fdd22fdc3662f97008fbb6f52d0fbe7b62c24956849fe04f9b023007a8932301000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f01000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b010000000000000028052d0b965ed862b7861aa7f3f91fe52ff8b0f795ff476c7e0a7aa42e7993300100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d0100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf460100000000000000dc0aaa8a9d617e5d1ce58d8279747ac87766edfe7028c9c5a8793ea3ba9c9445010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b010000000000000016722eb812c69d2e7deccd7488fa98cc9f59b82119e854a7bd40fb4c9a53062d010000000000000054a672d14f2d201c99ca725fae26f20cee76af6cc7f1113feeb82e837bc59c4d0100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000008c18c0e50503e254afa5a1f4de2718df55a4b77317ae2cc49c057f3e5a0cd81601000000000000004aa3c1b56e8c58951fb89119ce93f6dc3d42f114ee1679cc9bbb154d57f4223601000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c280100000000000000e05c7c7d82498be85294ee984e1f0caf23c53fa9a64cc7e6c5053304c4bb785101000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b3040100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e01000000000000000c3653094fa7896fc85cfdeec42e1a6e462ef5400c09aa7649f10a6c5d3876430100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f01000000000000004616ac86f0d45899eed3f1246dc5744858a694a92b0abd9f10e52dfc9c2867460100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000606b681fbdfbac73c58206794cb058a742c8a3082d419cfd1df6b2deb62a9b6201000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000fe48a8afb06afec4206732c62a599c7ec000ac904ef844c961eab7c44b326b5d0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d0100000000000000b40a46837d410276d8a7c242f2417e68bab5a2be7872657138a048909dc7c20a01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000030af163694f320f4f18b858dccfa1d89d928e8fb85b28657ff28b83605cd297d0100000000000000040000000000000002", - "babeFinalizedBlockWeight": 5530701, - "finalizedBlockHeader": "0x55db0eb74c600e2c8c84f073aab1e6e8c39858d8ee43a9190e317890ed9901fd0e054805feb3ec4ca668205bfef5f660acf1e1128c8240db61e4ac0e58e00317f1e3ea2832e96903a8257272c971e426113dcfb40fe5aa028e38c25fbb9b19f61f4c668f0c0642414245b5010373000000526d2011000000004cc9960ff7b7b519121a5e89780e4b67a7172984bd98f6c3d83d58286794e92a20de63cf8d7112c8fa91e0a66a637d4ac383ad4f0b8ee157e981e6a579cf130a1ecfae8674a933b3a8a9cbc297805ad891ce2a23d83d3024e0b859300080e00304424545468403f50f8c8a0ca413567d538625a4c7c7d3fe5fbca117ff824029fcfda623dfc26905424142450101d6649b52a63f8969984ce39bc463c600da64fc813b89590d430163c7d55a845cc988bce68408a95c1939a10a18a29c0756a04b150273d54db5b00483f08a8f8d", - "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef301000000000000001bae9b223279cf7f43805d7158bc4a31a981be184f969784091af289f854a0a80100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e0100000000000000fe5f4f4b0b7e9232250a6b1cb8cd1375849a10e4db4d8f6a50064c576d8820560100000000000000262562429feb60edcc7f1db025cc39e6c7b113e26e884338b3f844168e6f6f420100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec8010000000000000057c55b2bbb6b86d6e9aedef9b51904ec5b29d8c1271308aa625fa445532738320100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea0100000000000000761979187a2499fd94947b47c727e5d6010275d40502193219ee7e736b76c219010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a501000000000000000a99dd033adaa3b1f8d09d59f99d113201b99b9699efde3f2eec4c1170924d570100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000bb60743c9aa7dcc48846b6dc1d95923d34e62dc184d9e4d99f0a8de40e8ba3b8010000000000000049c0902ee37b569482da5474a15458b5dee16102fbc09b45878bb05f4a717acf01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b2900100000000000000f7ca8ee474724b1be33094b4577237206eb96d6744d5d11220af11e6bd1bbe52010000000000000094a9bcd15e4fcd86b34e42a581a07dbfc190832003306ce3c069cf73718cb973010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf010000000000000065dc7fefab39364b5669a360cfd3576a24742b82c646f97d0fc49386de6e0a4101000000000000007de9970a903513e5e8d0429c3671130008fc950d6d02c31d3b1746b6d839f39e0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca610100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000007977808620ade75f3efeb26b0926229e0817c6163399f1d48f39ece8159c9ec201000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a7010000000000000078774f4f6130efaa55b5a06d1ef94ca420739dff79cbc24074bba841053e0aa201000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da601000000000000000824dbb04482c2d264795086d3bf3a71471072c9af664c10e4b90ba7f9ccfa5201000000000000000074497472b01dc3a0c379b9622ca2579b14b0ae540e10ad655afdbf8bb1d249010000000000000059e1632ee9e89f2f3e9639752821767c15fe25db7fa0c5f475d732c59a0a645001000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b5801000000000000007d09497b4d65162d28d4940f8eaf8342798e7794ec0f5028d163fea6156cb4f30100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd38010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f940100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b0100000000000000700f01e62a9c97bb86cb5bbb57ac20c74af3695fcef14ebea1f133d3a9253cc701000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000fb3a06e07b02896157fdc7230199503899221cd21bacdd79d2469adb1cc39ece010000000000000086cddc46c9a3a42c3821183d597e76872f1d4904b84a92e8160ab4e0fb4d39a8010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f5901501000000000000006faa2a994a276a5d8d029db32b4c05375412db8844ec0a1ecbbcce729f308e9c0100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f0100000000000000098e7f6085499cc37621458acc5a44dd928202482d456fed047f76a7edf1c08a0100000000000000f174f78ebad0cfa91c428395afbad3e448bd958d10481a6a439028ea7d95b3d701000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000007f6fe3b417c26965a21ccf584140ae4705672bf1a20f5164e1e39af1378cbd0901000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff010000000000000064c7595df1bbbafa64066afd55b368dce0d349053eecb2e0d76eb41099dfed2d01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000dfa95a3c8b7a217c1cf1d9ef878a26ea611691ad1e765bac7b1313654505a89e0100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd50100000000000000a717e6564944b5d85787a33a53ccece07dcd37ce2f375b4e356c328858ac475b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000048630433999edabfc2790d3f5cf47a5ae499e2fdc3c4a9abc04a98da29c368b6010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b509212907010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d0100000000000000faa7af0f76a660a8c8c89fabf7290f2938798fcf0d522902d5d8b1d3a177e05d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b010000000000000050e16d897010823670148ef157d77933bc1721d82c45e80eb73b46b12b5daab60100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae01000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000e05521afa0e7c1526a49e1ca6ec5c5386673607cf6e53d223611850f51d37fcb0100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb010000000000000051f30c189018e3ea45d60393bfd4e7e690bae78908458616537a362329a4309c0100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b4972729240100000000000000fe30d30ace5295db295a2e6592e7990ddeaa9f1a07abded61bcce0b6392626080100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b0100000000000000a9e971cbeb8697f20eba2c82dd0c1205b590c5413dce534bb48f0478c76dcfe6010000000000000061f8830d235dc8b50288a606b3570c8335eefac47874c26a45f170cd29a5dd3301000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c590100000000000000fb267d8f26a35c34d58b4dc0633cf56f5eb6882ec873270dfbb0e55c64404dc101000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa01000000000000004715211e268489d1eeccfbd8a5e67235244322c17127226184448741ae332ba10100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e157010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c2010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000c3e4afee23a9fa0f291d0789dd41b4c0bcadf40b12e7ec3be5532dd1e7709da01000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000eedd48a4e6e202e92845fc2fb09da5e1eb2b839e48227f2531142e5fdeb44b2b0100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000096c6301cf86ba237ec1b24c7d9b6cd3b872492d26d58d54a8050f18785af33450100000000000000447661b3b799d8f7665d765a485467a5a03536c33cf1d8f5208c384e55f11ea6010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee6330100000000000000782d67d8a58da40c6284ad38a9b05123333ab060654b9b063e877762fc4ba173010000000000000002246d9cae89005f399a6a68cd771ad53b52c5d557c17716b873fd42260e4f7b010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c60100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b01000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac9659010000000000000007e11db40409c32a4261679bc520ee8ce4af31944d19b1faf2158299e905e7280100000000000000edcb49c54783d276bf63f9d99bc74b76b30c95840c637174df7a7521a1b8c1b301000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d4141010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000cdce828c6b62da7b39b46a6cf22aa1f2254781d9ed8f693f97d640f45239f68201000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f363590928400100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe70100000000000000193dfdde1c1e8f0d91530a15b8eab00e255cc2dd6b19e689868120922f79a5bb01000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000c96f4bcdb9d46096e4e60da9acce9c761463ff38563368feddfccab6135923ad01000000000000005c0ce76a2fbef3a0df89ae8c2bedac4e288c3679c33701980624c9ffcca9103b0100000000000000aae265f73abaf1fdfc01a798c357cddeb8467caae251b123ea3ecd94a6f2d9bf0100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b3850100000000000000f8e50e8b63b242e30e5bd266584b6fc690817455d2eac1e04d146dfc1dd3614d010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000f9689a7ea3f40ee757bd99cf1ba166ec2211f1999dd4fec28c44a6f69e253b6c0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a0240100000000000000290321d793b7dcb12ad148c2438bb60821bd938b7e9164a0c3d0fc82987f8b63010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f601000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c80100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd7010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc0100000000000000785825ab051127e981a7154947645df9d67416ea2499048815ed5f7aa358a21c01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a590100000000000000c4a33144b80256ce6d485ff2411b7e590cef0754e6264c68aee00a03adb91d9c010000000000000084c5f583e29d8aa4b794bf3142cca87f1f82cf83c0a36e5bdf97b363299336ac0100000000000000d45705ecc1f19f97d4ba95b672c4514c65d286dd5af9b8c21ef9c28073855c970100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000a7dcf50fb724298ea61a8dbf24c81f866ed48708e1c2f914472f195aaf1313d101000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e00100000000000000e6489beb573734e417fa040e59af4e44789001fad63f5df871818cc70714e6d0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d301000000000000007104becc86b2517ee166201faadeec93e4150bbde0fed50e99f68f427f5af8780100000000000000eaaf51c4db0ac374aee2c43ce34866dbce4db52f43096392566898f8570d988f0100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e0100000000000000e2cbfcc26562b49e656aed7d837a26fe0f9802db088b10330227b6147e150012010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000b14d7eb2d5f956e23a7407b7cc5ba971171d0ac45169351ccc6f836c9ae796730100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000003a4bfd825ccd308def4a61bac80c579db42b02ea5f1a0768656a326e83a0dd8801000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000a4ade0dc093d5a6acf17b067e473c0ffdc1f815943ee2abcd7eede3ec5a661a401000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe901000000000000007d52bfdaa12a3af4707178d1d94e668fc092ba0055f2111c4bcf5bffa08729ef0100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000053bbc598c69604e82050d2008b95b491ce8c826dc39a2e300437ffacc86d52ef01000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff2740100000000000000c5ca85d7f46a61b5153a44b17020a6f2bb0f05635321e283971a1a2909f8e820010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e551801000000000000006708000000000000000143015201009d2100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e0158080000000000001d144f015908000000000000284c4f015a0800000000000043844f015b080000000000005ebc4f015c080000000000006ff44f015d08000000000000a32c50015e08000000000000dc6450015f08000000000000f19c5001600800000000000005d550016108000000000000f70c51016208000000000000014551016308000000000000a35751016408000000000000d87c51016508000000000000a7b451016608000000000000c8ec5101" + "babeEpochChanges": "0x0474581f33e5fa4b24194c0850971b1da01a4cab4845f6c5b2998b5d694aecd54a0c75530101f3eb21110000000053f5211100000000047509d7d757c121ee148cc67fe539681d0ac242aafe8da1f19a5139224202c6ca697e53010153f5211100000000b3fe21110000000004a7737d608d022cbfbd8bb1bdbdfc7e2e58854ab8322b4a0770496d6fa2228ab4b987530101b3fe211100000000130822110000000000000c74581f33e5fa4b24194c0850971b1da01a4cab4845f6c5b2998b5d694aecd54a0c755301016124000000000000f3eb2111000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000ce41346a050104a9d5d9226fba0f2bb54725836b440978730a878565a9198d0d01000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e01000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e0301000000000000004eac292b47117bc6f534374e202ab80c0d3738db05910a29bf263408d547661c010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000090d25f2368ee57fb5c100140b7507d5831fb035e7632c53b532b65e6d14ba84801000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee4900401000000000000007e0c92cc60d7cb7282e0b1e8fea7ec2c4b751f672371373af0374e62f3b13b4a0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000007e68265db123ababa19caa4d5b6982eb34c2f26b373b496180aad574a26da9550100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b9810010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000001a6ae3ba55d3b68146f9b366df0ff4300d8e4cab26dc3892c1207c783caac92f0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f2117450619d24661f6652dfc06c13f3859e654c4d14a4ed28ffd4325a7599710100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c0100000000000000e4947905b57f3ad54e47523b00a529c3f7524cf13ae76fe3a8928ed5276bf05e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e0100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000f21a1e77158ff98e4bf0645e4035ea5f52302b1bc39271030f2804ff73b87a1c01000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a83701000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a550100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc72010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd780100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000a8d27d01a03dad14bd0b30e752ee8d1d1ee08f280b6e983102214ab5420a80240100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b01000000000000006867f5229884ed1aecaefe8f64079938675ada70f7de887cedb834b7982e1b140100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea3839550100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000000ca2e72555afd4c7356ccba76a2f1bae9032ec5f3067c2442354dbdc22f39c4801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e058420100000000000000fa4c94808e0f117a940a2eb8773ed91373dd5d5606c60cf9466f7835735c7a1c010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000008ed30e181d7dbd8d6712150f767bcd84710465855486e0a01292123de9f397e01000000000000000400000000000000027509d7d757c121ee148cc67fe539681d0ac242aafe8da1f19a5139224202c6ca697e530101622400000000000053f52111000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000ce41346a050104a9d5d9226fba0f2bb54725836b440978730a878565a9198d0d01000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e01000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e0301000000000000004eac292b47117bc6f534374e202ab80c0d3738db05910a29bf263408d547661c010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000090d25f2368ee57fb5c100140b7507d5831fb035e7632c53b532b65e6d14ba84801000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee4900401000000000000007e0c92cc60d7cb7282e0b1e8fea7ec2c4b751f672371373af0374e62f3b13b4a0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000007e68265db123ababa19caa4d5b6982eb34c2f26b373b496180aad574a26da9550100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b9810010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000001a6ae3ba55d3b68146f9b366df0ff4300d8e4cab26dc3892c1207c783caac92f0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f2117450619d24661f6652dfc06c13f3859e654c4d14a4ed28ffd4325a7599710100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c0100000000000000e4947905b57f3ad54e47523b00a529c3f7524cf13ae76fe3a8928ed5276bf05e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e0100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000f21a1e77158ff98e4bf0645e4035ea5f52302b1bc39271030f2804ff73b87a1c01000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a83701000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a550100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc72010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd780100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000a8d27d01a03dad14bd0b30e752ee8d1d1ee08f280b6e983102214ab5420a80240100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b01000000000000006867f5229884ed1aecaefe8f64079938675ada70f7de887cedb834b7982e1b140100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea3839550100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000000ca2e72555afd4c7356ccba76a2f1bae9032ec5f3067c2442354dbdc22f39c4801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e058420100000000000000fa4c94808e0f117a940a2eb8773ed91373dd5d5606c60cf9466f7835735c7a1c010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b14010000000000000082aa0f8618351d3b03e276b47789f93fca7aca8ba9623d6376c18fdc9259962c0100000000000000040000000000000002a7737d608d022cbfbd8bb1bdbdfc7e2e58854ab8322b4a0770496d6fa2228ab4b9875301016324000000000000b3fe2111000000006009000000000000a50432904ec260963195582a1d339f9fbd2d5d76f551160105c922423cad0d94482f010000000000000076441c448aefcf40a72128edc9b44a4f7ef9c267c503e98f5f9c72d5e9e92f000100000000000000526e055ade4ac425e9b5f93ce4394601335d3599a5b742603126d78ce99a4a540100000000000000d0e8ddfdeacd8e163b01ca4da1a4e856312b0de412b492247070f2721f7d803801000000000000006c9c53f3824abe976dedc2792e1c6b8cc55c317eed2f30916c3229b60e5792060100000000000000ec8fcbae6ca9d402b51bb0bde913f0c29769d8d1b9653f4933db117890fe38720100000000000000e0c2e2850da2dcb10014f567073506dbad07a79483385242cf5808234b53bb3f010000000000000046af93a15e552962706eb4779bf9dc24d49a6a55564250ca50e9a02c955b2a400100000000000000da5966fb1cc3a706f62858fdf27df1723a9e80a1cfc98f56af48c4172a30171e010000000000000034b9bf86acb3f518dd359690e3c47c50c7418fd2cb0ebd8c7cab6dfe2dea095b0100000000000000503cafb91c14eaa2931c4507090b27170b90a2a76d3cd4669f922202c781fc350100000000000000927ee7f0822e513b33a24900122754dee60a1898d90781dafdad6697fd2182070100000000000000ba395fcb33327501109ed40712c7a372d25bf3339edfabe2a1964fb7b5d4d82401000000000000003a36963a41de2036872df1c499f45acc0e7179457316ec2d99a6018e078f6a050100000000000000ce41346a050104a9d5d9226fba0f2bb54725836b440978730a878565a9198d0d01000000000000004c9886e2e62ee92a6778d6a7928052732044b64fa61969cd8e37f3f7e3406f720100000000000000c056f1879c1fd443e38244c26ef138218b3e43e70b1cb84bd7242e354cc9ee0e01000000000000004e66face3c69993a0030ee7c7b2fff1a941ab11e523c11b4cf1713b37963491001000000000000005237e4509f24bc9e8bf9bfd78b594219d86853ae16601f692f10c9b16b88f83b0100000000000000ae7ffb869c0cbca80b3f9fba7fcdb4040b16f08c76188740a7fff0c683ceae5e01000000000000001c38faa609249e0170c8474802a7e6907391fe0d550f0dfcb550249965898e0301000000000000004eac292b47117bc6f534374e202ab80c0d3738db05910a29bf263408d547661c010000000000000078c35105ea4cd9d6ea0ba91b2c19e78f60931bef5918c1bd2e14259229e7c330010000000000000006d2846642c835b0fb1ff1ef908449376aa8e7c0f3352e55da9a1e97e9528b23010000000000000064cb144c8c84c86e67f582269bcaf426fe90baf90254219bc25ce9f1edec6e7f0100000000000000f8a681118ea0bb9dfde2813ce5144eeb5cee881c27883de1c0c759255ec32654010000000000000090d25f2368ee57fb5c100140b7507d5831fb035e7632c53b532b65e6d14ba84801000000000000008a2ad071bfcfa2e03d48baa21d9e6118e8ac1192495edb1d84872041bee4900401000000000000007e0c92cc60d7cb7282e0b1e8fea7ec2c4b751f672371373af0374e62f3b13b4a0100000000000000e67c524e443cda4cd27dfcce70488a5d23a93c8c46a5e83ef5a69eff3a02fa5a0100000000000000a42289d68c963358f3c450a850242bb53121e73e17f0e2ea2b93327446bea33c0100000000000000caa53cf3e8ff5604d82bac45868bf3e25115f7e8f4d1cdfada68f8487d03e91b01000000000000001adf849dec186b80cb2aa2d3bc0a53edd9fa483811fde8eefcf46d297ed8e20e0100000000000000a8e470f2339e3ed0da456780dd9207e9c6a02459238ec3057a6ade01fd6cd60a01000000000000005c7f05d77f853f3eb8d4989fce36d0808b6d2b881e26f13c01e939b5d489a57d01000000000000007e68265db123ababa19caa4d5b6982eb34c2f26b373b496180aad574a26da9550100000000000000506b05155f03f213d7516cf7ec50bd18a65187a8d10bd01501c1337232786f7601000000000000001abb26ba0076d5e001abdcf18d4454fe25c5076bc5ceb1b8f35d6041670c265f0100000000000000b4ffe3c5959ff37c11c6f19d91926cb97aa4bf0f604919e1753bb55664d061680100000000000000bc4c9b5425f9a2aa09e3239332c702dedbfffa2b9f4cc1b978b307fc1fa1337c01000000000000001ee57665488b5ad6f7358157b73009a4ec4b14b4a03c976487e188f54bff7d6401000000000000008610e1f00a1eba67d13225867c1f2972e60604e49bea7e5c1b10b29d4841b84a01000000000000007022686a613aa1387ea688fdd9a23170bf587f7f1dbaf7b8b022f120f3a4560d0100000000000000c47bd7af17b6ad4f01e2880542c8596f5a800a20eeebcb37756ffca94a6b9810010000000000000064d54109c3f4d89a9e36206a4c42e4ca0f74699c9e5f9df386fc154e6d51f43a010000000000000072a85a9dcc0af833b5a21a51ecbc4a9855c2bef8848e080ed70ac48cd1efdd5f0100000000000000c49cfd152ce3ac1fa142b3b6e720cb173eb7f43c82f021418253a070036f870c01000000000000000ee4b76ec5fabf011e00bc27b36039f3d397e021e8bcacf9532c90fc419fca0a01000000000000009237113cf97fee5fafbeb82de593f6125e9c498bd59f0369625f46b326c7d9170100000000000000722d7d57085c250af633f2d461874d59aebc8021eb1112ec8805db5ddea53e5a01000000000000006a499df1844bc1843213b6affbd9d2c281a2a17f46c56d939a00537b8ef7415a0100000000000000562fd7529c92f9370dd6d7ce60d06ea4a826cbefa238231993ecfc9e7725ca2401000000000000008ef93e538ce16500f27b4c9a10ef7b02a46d8a9624778d0f83b9f7d8b560466501000000000000006a1274b6748bf822ba80c9a9416abd3cf591b7aee6adabb8359b7dbed8ebb3770100000000000000a893d2350e59c1937884d11aa7b680ceb7a49e7dba5a43c67bc7c20bf347c60c01000000000000003001ce583fa1f84555808f8d46c3242ce898060693aa0573f54d139263c1783901000000000000001c8c31172c865447aad1a964cdafae52f6e53c32d3ef2aec7f8956c9d1c7dd4d01000000000000007251d6c376064f07f27d2532b05c091bd0978067b078c9f8d9984fd4216bdd4b0100000000000000487c6aad1cc26893dc7e498916a4c23d303f098c04b0a8b0c8242fbb7e73a16e0100000000000000bc4b95226de4e10f91e0254cfe4541232252deaa347f567df124aba81bac4d3f01000000000000001eb833e31087d6baffee4e7f1d9a8e3b7013ea392c81f74313a354ba82e92f6b01000000000000009c8c7c8c91df0ed53864f69017d530b5ebda3ab4bde3c67027e70893213d533a010000000000000024efac2829d615703c5375dae24d394207fdd26d9522bad7af6bac64ede12702010000000000000028a027ca1c0bdeebfc8fce85ac4bac48cc072523d9c4a86b4f2594f9142e7e3b010000000000000042e4c41a899dfb238649e5b17dc232c2699353635d60e6a3bdcd71f9b82cda300100000000000000ce4bfd8c5611b1637066ef9e579c85efadfc9513b882184e00b75871ef7f5a2d010000000000000028558e46037c51ece4d39a8a4d34688662e629413c221d6226afe454240e702101000000000000000e76ad5033ec80da424503f80ce2bff64d8cad0e807d7c6516a369b46ed0355f01000000000000004a2073ae31b3df10d285eae6a5befe069183c4c6a6ffa1b2bf432011d0d475200100000000000000f8cb6b856e416fc9e9eec947c6f76eefed65cfe5f1e117a7271396729e5cc8490100000000000000bad91c9aefe173441dae1f273e55090706d412b0723d39bd6c3af053feb183200100000000000000d6449d7e47cd3ac395e8e95252c968c43d2f86c0dedd888848050e861db096770100000000000000b05ad6cde0dfc019d740c3f50b8aac16550ff4c197da19cf23b9293f0c5c390701000000000000006e3d07ca7f680aee933830ff37197bba65eea7d3645ac0190cab4715d024bf780100000000000000bc56c07cea21bcbbe058aedd2ced9fb4757caead55f96bda9bed1c9669c32b64010000000000000078e1a4fecbaac940c04e0b591a01ea66a574b5098852ded2810e3a534971111f01000000000000006ccf2ce8e149999a7bb996faa65194e60aeb7bcd1937c787f886fe979fb49e6601000000000000000e5650026c7bee4fa43a2c7fcdc3452daa10b0530863ec686b1d5ee4d70760050100000000000000fcf035e331119562d12a6c61370064843215b5fa63adac70e48daa263d199762010000000000000082b820c5bee8ee77e35203dab387f3434b8502e5f1c35dfb2ad15b5c89d47b3c01000000000000001cf3446b4b5116a1784d92cdc5101e55a5fb91ed3d93efccd06b304a94362d0a0100000000000000ea3b7409d48cecb6b0661a0e307e04887535df64b6f070fda9e89974fdc4212901000000000000003a4b0919068523aa04ab29f1b49bdc03a176a4b93f9b5a7e6e0cdcc83186910301000000000000003453dd62698ce604442494183b8f6b8e8db42b138a39c5c5b82d7bf039245c5201000000000000007480edf84ab569e559dccc99b87ecb9ae9db670b45a259b7f6e618b063e4311301000000000000000ced783f326f6b8e7d27e41eeaadf3714f91e20de0ca0e11d2cb0dd942193758010000000000000012e4e8f29b147f5596fa9f59ccdd35467884318f010063feac87e8985b00ba7f010000000000000026c4a27200f70748b52f7277150d2db7e192b258d5001412e42c62c6e3ee1e51010000000000000024030139ec9ee0e2d96a22a3fa6b3c3e3bfe7fbf57bf55e9efc4586a10344720010000000000000040a2527ffa7d30d788eca127d435c8b5aa48972cda538b9a1627a57e85c8fa1901000000000000005673f82330a1ee6e6889f745fe15c353f5f8989e4a281e8aa53e38ce1e74556d0100000000000000a64dd29103d43e3e898a41f3630ff88b2420953febb931c70ff543673efa251b010000000000000028e972febaf463f22d1108053e7c26ccde1e6018d7c302985bc227557e0a663b01000000000000007c4f928b915062d9cb15e854a9476cddbf7126c9de2fd70f67beaf2ebf6dbc5c0100000000000000fced8f1dff4f6c6852b0d643e26ee532086e72be7aecee28d94d1d59b5f9986701000000000000004a905d0574cebf6e8d00d382b104fc8ee1c008f1b9ffa6fa5c3b67ff29719c0d010000000000000002ecd96c1f4fe196d53f262e75770f1a81c80b5764b01383fb77e20684f2096d0100000000000000fcccf8e328b4cc968af52a23f6c960b5e34241047b630c19a0661ace6b9c273b0100000000000000be6106f9217a1847af66de9510fdfb40514409556506ddc1c1a897818434125b0100000000000000bca6409d6d7e4f94ce797594db4363bb8bebd5387770aee0bb7663b36354fe2a0100000000000000b2518044cc31062ee50fa81cb6983f314291a0300865fa5cfe149829c5050d240100000000000000483121b03dee3c339898579611a968f6382ac2a0acf3da8b9e428b2817c8de380100000000000000d2c97828a993b57a79d8e70e9b6cd9e90f01d1bbd934641509aeebbc625b9f7e010000000000000050f3e6382021e3c7ee097307d03933571ad45bd056c0eacc86b9ed5174dbd52e0100000000000000501a0688613688cb8ce1a0db2e4150f8e3c6febf3f850e9ac2758c7fe03987000100000000000000187fcd65da5b05c572bd1809b465ee23d8139deca61327a33a1cbbeccd5b335a01000000000000004ad8fedb395dc0ed63e0edbdbd2d20555b61a46aa7cd751e4308335c277cbd6a0100000000000000000511be1548f1836b1d908eb02e442c9b0964794555289c98cdaf5736eacd5d01000000000000001285919470b092c61b3deaa9ad83226d41f36d58f0ca5f2e14d11d0724f6f00a01000000000000004c5e6997b6f186855b1f4c9f8ab2d6cea3da2e86445605ab89e5b5821e05bd3d010000000000000070d61e3510b1ba3dfc794601dd5ca8d1b058fd2f6917e6a30d43b134c9dec9790100000000000000e850ee212192b3a62e0fb81140333b45c16d4f18479388d4dee1ec38f9ee5234010000000000000068508b2ca3e01d7c8d79d99f1bb06a93058d14f1061d5fed4df13d4bc30aa557010000000000000074f02ed037d28c883df643034a596e4d2a97a23782ee8483c9ae3429ede7e7090100000000000000a8c1e6adba7c0d8092662efac903524307ea7df024f10ca0d73d95bd4128543201000000000000009493e6de34e09c9679b6dca602e38d8c07abb77b3cc487ae3a80661968caa37f01000000000000007acafc914dcd1ac429f85e4a1c89580c0bb58b8c67b3cb6924643eca63ce306c010000000000000036184dd6af78dcf4c568359a8e0f72c6a9c51f66eb0b7a9e27456e0b6edea36b01000000000000001a6ae3ba55d3b68146f9b366df0ff4300d8e4cab26dc3892c1207c783caac92f0100000000000000582030a59816ace3ab2c2b8c66ca50a69991899df57096da6f6ca8a49b16550f01000000000000007a0f6d81f5cea6027548ef03e8404b2d0b0ddeafe70b47101e18df0de485753201000000000000001ec005e9ca3c15b2994641dd22efcbb20032f10894f76f57296d219dc149817b0100000000000000d8faee17dcc461acb22ca1720b86385414ea8810ba31509fbd8da8733029eb19010000000000000052e8debcf395bfd2669cdd1cb32f35d7b655a4761f0508751db390aedf2517040100000000000000b071e9d6b444a555e034ecdc4d04f2528cc36b347b231b33388564a40fd32b2c0100000000000000f820a8ed2c97f639fea2892d0a89ae98ffc4c0054f948f9a0108e4d99f89994c0100000000000000fcd5f4c4fe11f20ad99dc8345b7dc5600caba5d5b7d3f499c3253c095152d4540100000000000000142445d894c1236a38c6b1bcd9f5a7245897026424ce9544002008a7702c3b1d010000000000000096f1ccaff172fc0078f2675e5a37dfce04e480b2360db12379fb236ceff6d3110100000000000000780e4353aca40b0f2b2403c862cb33032d49a820244bdc2853ce158d48c4f6100100000000000000104b41830f092484a00f2d595b8aac969bca6cbf7f386efdd0f79ee9a8c02011010000000000000064d9aacd0b67168368fa3abb470961214a7db8c0de0e43c69aedae61e1555f1701000000000000003cd825436dadf293b1f5c315d478b960b1e6f141e3244f2f0c892f42c0b15904010000000000000068f3e478d28f00ce97dcbcce5e9cff5674f6b3d8b06f7dd8be7b5f3b6f1b555d0100000000000000da7bfba48819dcd92eeb75e2435784132a257ce38ca01a6eb3fb66bed9422b240100000000000000f2117450619d24661f6652dfc06c13f3859e654c4d14a4ed28ffd4325a7599710100000000000000f6147fc504809de982f75aa2a806945bad883bf3854f6cdecf6f8a7b79b998540100000000000000009463e59f6b021a1dbdbf65e56f568ac5736baf96470440d7123605a4bcd93f0100000000000000667f7af26c8dd32504777bb2a259a26757808ead5155f3f098558a70d90c575b010000000000000006f8df3b49930c691067ddce8889df6179b8ac05a3e9a96d0a7e98904c969b14010000000000000092ee092cd2215c7c1628086c08be10a3cb969f6b276f600422f3526f303bd8780100000000000000020d34131c7a0ab6d104839ed8b9e0cdf075b80409a36fbe94d0cf83f7ea1f1e0100000000000000269d2ef380d1b161d3479448fad38c3f1328dfd8a134d5c40399f3692cd7545901000000000000005093664828343ccc86b8a41b0638b5f38c8e5995d2cd01267d49d2651d58986501000000000000005acf332d9cb40c82c28a83f1f5d84f93822e4e10c415c8ce0cba257844dc7b25010000000000000046c5d9750776edafdced20206ffe4b799489f6de9e0983eeb3a9fb6485c7e222010000000000000006451fa7b2d831264e40a3e5b8452ede10164b7162a0e93bb9789a102c3010420100000000000000829f64b96b37d0aa283fe99a6d2150069bcbb6be61d076f23b3992b6c1fe6756010000000000000022a66dd6397c2631df509db3482baac28b546729e6ce965472a9ba2e648ccc7401000000000000003eecf05d3ff835fec93fb5e9b7b0f588b9bee398f6f89fd7b71d1ef1ee55840c0100000000000000e4947905b57f3ad54e47523b00a529c3f7524cf13ae76fe3a8928ed5276bf05e010000000000000052b41700df65ea66ffc6cbae47c04a2f20618f5d62ce1ac9304313373d39fe440100000000000000a065f45a353f24ba187248aacd9c64d5c3a92ddf92b4a5c33994f56a07cea8400100000000000000e4a9f30dd10e786b66881c8811a0e1042df8b7bfa90ee55cbce2f4a9d1dcff5a010000000000000022b634563bc2b885326ed31f52644cef011566a890a26192a8b5435b19fb6e4201000000000000005432de09683010f3c1a6a977dd0dfdd8c5ce9fdb85225b9b7dc8e451e340cb2401000000000000005242205e7c1a9217b8528830dd7915dc80a69df8fb098855073a45b9c41e6c2e0100000000000000f60b5e74957220ed7664befb71e9621436e40f2b6c1bdb1c90a6de9c3540a84001000000000000002a98fbaf7ec22832522e3f96821711ef684283911a524960efb14953255baa2b01000000000000002076bc34bf8c9ba9c0922f484f04637c02b4a44e5dd7ec861f1ca8b6cf84c8400100000000000000fe0af833307f4cff497d006ec63385b1c191efd6a4547fb05a355cd23686dd0401000000000000009eb1b5beb8b5ca4613c17e6d41996337b26e0ca7289d2f52df05997020eddc500100000000000000f4ccdf83d734edcc568462572abaf32d22ac7faf8000195e02273d1c96654308010000000000000004efb918028f583768356118e9457c36583319eca6d53536596714e782f1596d010000000000000048ce0aba6f1554e139568b4d2358d6cca9bc291d3600787cc3e732291002ca220100000000000000e002b608a4148a8616e5435dfaa8681d0012bd78fea4502541249d97f56acc640100000000000000a8731d355eefdfbdb7fb12cfa5a280c0b1e408aca264ef585d42bf97fcfba1160100000000000000c670e2b0f864f126be43807610aab3295cb4ed6a684d95de331d700f74e2985e010000000000000022350f7b389967ec6e8c8b6c56ac75a138db742abcff27b1d6b3bfab894d187201000000000000003ce775a4a6215dbfbdc2b0a8a8b71936abd61642b5fd1a0c1d06ba548ad3025e0100000000000000bcb998778b7c2c182f396b311f92ae1289daeed9e62a3d8a8298b8dde7e1a52401000000000000004a1069d2203a75cd1078c39de35c16a6c4c12acbad34f1cba8efc065f80398610100000000000000a04b6d9d52be6e3487395f72fdc898bd61ccb60dd049940f21fdc1dd36042e4d010000000000000086ff7f9b2eaec6638f33502e74c216fa4d15f774b35c318fea091669cb5544190100000000000000eedea8652413b5a97c1eda13e1e050b777bd0a8ca31dafd63aeab576a68fb75e01000000000000001836b6f7bcdf39ec4f786ee982799a549605b62f384a74981bf9de018c26fd430100000000000000685506af78bd0b16513f09395368600e5b6fcde0f89d280c6446b1613844351c0100000000000000dc4ae9ca42fe496af7a466de59735813691d9c050f3256c3d4a96664cb6f9f670100000000000000364b8a06b222519596aee1998bee4b2c54c488c1cad1d39102f697b94749bf7b0100000000000000f21a1e77158ff98e4bf0645e4035ea5f52302b1bc39271030f2804ff73b87a1c01000000000000009a64daca74d14dab93385e52ca70940732a8d45ae4b853ce156c3eeca06f0c5f0100000000000000c63e31fd558807e07f9c7dc51f8fa8110679bb1b1cf5585e56d0b6164179b9790100000000000000eed7e8e8a64dfa89c548a31c1b9fec7af5aef4dbbdb26997b2ddca72d4f8790c0100000000000000fe5ba24461a8be22c5e553d2715748ece9c50a621d1794e36ad6c40dcd5d9c2301000000000000001e534cbbe982369a968006efa465cf2a16807a88a5c877d45f090192ea619c60010000000000000020bd62168956730df2663dba0924090a97857211154f0c7f7fdc93d75e272e1c0100000000000000a8799cec2aeeea9f33bafbcd60c947d0bcf3b1c9be450c43f63004e16a857e72010000000000000078cf1debe3fc0da2ed2473d1e1835a478cc3e7008e0cf42043f287bc36804b710100000000000000fcf8c8db78fab04b332758bb6edb9fde68e74ee228c1eac78812cd80adce1273010000000000000032e2c97e308c84afea4b37d7dd8f62e67763126c357c9e6e49b27f54c3702b7301000000000000007459857702536325f96463f0c39a0ede578f2a367f762934fe4c59c7da3dff340100000000000000843778dfeddea10578fab2773f2827c62fe0efe374d9a01eb370bd8f1427e7630100000000000000b67d043a780b897a23192cba22595b758d2a5db517d50951c99d5acdadf3210701000000000000009829a89b84bf8a0c76dad25d99c2e4476e51bff2ee9e917a65edd1b4175cf54001000000000000007cb1f225b90c00f426c33ac4338eeb2dae6467b8a9da5c1556e6588c12ca977b0100000000000000b261a66b9bae17b65e7f6a88d65efb4519925d6c418c9e2ba17bfdbf684b77630100000000000000c4046e6cf48c9913b2af1dd8caa4f7ffd03a01255af691cc1b70f142b97d2a150100000000000000a67e182a979bf4148154b0b12fd41acccd55733c6f62a7eed07be0feba2959730100000000000000560c91919fc22867159ed77bee1b3e70d2e222a5fe6e830fceb13b58b0daa5290100000000000000e03e94cd4419d9cb8709ad2859e598912c78c01b15eed53ec0c336d8d6c4914201000000000000003227028def74f8ea7bede3e112e4ce09d8fb823790ed599f2259019945f2690a0100000000000000e21356f86b43183f65515dec1a3e7affcacd934d8d8afe1a8d71787465c277080100000000000000464d95a7c8cce76af088d8f781e3073fc194333ab20956b4dd2c25d4a29ac56d01000000000000004ca838afa9f12e88436eacb5024f3f94c95a66c32e114f65f3136176e426c75501000000000000000c60356c02d5d99293952c478fd07b2cff982dbad863ebdadf25c9e69206f14901000000000000003a8b589c8222ede45b3d95c8d9176543ffa9a29cbfa0ba2af60fc412e732d75e0100000000000000a43b19f13ec057124df240aad303e969f7d02fafc02c263d7ec814b6729d1b20010000000000000072bf27b7b0bcf74d2d87eb2dfce85383a2d4d768aa720cc80fd7e5238d89a83701000000000000001e724d980809bc793ae72d15a9b33cbf93b4cc17875a4259970548c5137c6b4d0100000000000000ba010e85db9e8a5a013a2607aaa3bd4893c40458ca06576757e8c62861f8fe420100000000000000ecf0297bddebd3d766ea7def2bac79ad6eb650fabdcd029b99cb1649ff7dc8150100000000000000509f915fe6f099fb5807c03be526a055dbb7565c35831a7dd76d6e506d493c4601000000000000008a16fb5a6718a714296cb8fa2ca708f677f78c7f883ba3c5ad1bbb9e23f377050100000000000000e88648905e5c418ef73c2afaed085dbea8f78268e187ae8335c28391d4745d2e010000000000000034e658d19575dfcb8b27a747917d14806939f0a44eb148e28991150a87641c2401000000000000005c3615a5e2072a618f0e434f7c572f4e4b1a89348dfe0f7939c99de095d54a550100000000000000a496ba57e511f86ff4cf264f9fd7bd3595b37ae55ad671c7790574c87d40415201000000000000004e466f6a4930d856a1f53f21c1a44451ead20c8c71319f6a685f0e254d24c32101000000000000004c1af564e989c30c6e5ae1b8035ced5f59653b40cbc2d78fe17336468c8f441b0100000000000000aae09b04fa28b8a687ebc938cd04a43997cf67ff9223cb74ed580a2e4553dc72010000000000000024706d6d41dbaf2bac8cf1c4375d87c3a5b84b8bde07036968aebe8390661045010000000000000088fa8bb07ebce99964718c65d0d6f1b091ef2f4d4cdf7b94a22c42c007ecd706010000000000000000f79cec5a6b6b70f768ed05e94d2cfd70b13bc58fa16e62d742ee49aabe967e010000000000000052ac28ba2601723d23a086b5d775f19319f110ba5e9292f2af461e71903b5b50010000000000000066367dc21d99167386ed0d0018a18b23a1f7531aba9f6e1d299a43446c86201f010000000000000092e5bb9d0906f768dbdde0696b78e493cc78dc1f68789575b24f0b962799b51e01000000000000009295a1f023157921d346b73484b120d46048382107015aa9ed998f1fae95970e0100000000000000f0c0cc64f8973ebc2322273e684b4f73f412503f124c130be0be1589718cdd780100000000000000c6fbf5153c7b8dd896e8daab854560e2ab669890479fed689ca39f210fe8800801000000000000009a5099f6a61d1742af35c996ea7dc209517bda54bb8bd73a1a3618e39959902b0100000000000000d8de542a748c14224ee7faa16157727c852ce502a45b408de0975c88a39c690f0100000000000000fef60ca8d2a5b40939df8236d63f836fa6dd35ae1637042f3357035c9e0c4d5701000000000000004c1dbdaaf0fb061228d2245561476088bc608788cb3e9c5266f5a8e54bdd1e670100000000000000585ecf59c1396544c1f1dfa5693ded0c96daaf05cc70d55fc8c6fab487b2022e0100000000000000b6688ce42ea01b1822699182c562585a27081ce6bb0438761436f4045a42f24a01000000000000006a40a8b74a142958efb2d75cd363635eccbfb70cddb24f0626d0ec927d982338010000000000000094d28205c958a5d713fe7dec4dac2cb85cce31872e3faf9eb9487e8fcabbac6001000000000000008af88ab005ea3b1a0b3412054c721e574c4b4469e231aa487d9132946e42bb690100000000000000aa74176b5870c97b754a157ec0d8032148c2ae717a905e0e5e626048b6f53343010000000000000062d37e495af1a21a15c93556362a0e29726926302d9453bcf2c2f0a7b4001e5a01000000000000003e07b075219fc7ace8dc3bf3a06f5dc12aa9c7e45fe30244d2284bcfb1e6ee190100000000000000a4a0bc81aaad1ebce3fdf896a8d6d081ab93efc2de9d5c56f2632edfeaa7ad0f0100000000000000fe89f180614a7c52bd204f8204248c1441b1a02f8a0f07672fef46770b2097110100000000000000b64ba96a10f5387463bc1d09b8fc05a810215959727960267a6ba046ecb3294201000000000000009a3b32b7cc94b119b2753d77d4f38b0e63900a5633773105a551de5b22670e7a0100000000000000a877af86b958cb961cc97cc61fc35602350a87cf9cccefb09dd91f9f792919250100000000000000288c08430a7e427400dd5b61926b74a82abcbbc91ac739190cc791a581f6836a0100000000000000eec1df2a382f2f9d0e7dbd91ebffe7be19dc9e01159cf3b82229a3ad2a33685b0100000000000000b6c42607db8cf37421c805c1c54fcfe85f3d25405ff4c55286501818c9dc584601000000000000002ef781a1d268b8afb0a8331ece83f3fff6877baa2d06ed9a23d484d5d70a50030100000000000000c22b3fe29c3b9eef11a6db4c79ebac692efa4e3a9e4a48affdc415275ce387640100000000000000aa646448bef869fb04cbe6c623251e10ddda7c039fdb8b642b704c3a0416dd2701000000000000003622bfbaf9350b5906bdf9ce362e06726224ed141c5d29e8e175e0beedbd3d3d01000000000000002c6ef636d3bba8ef79dfc0e6d77bcb38426b54c92b764b29115d25f3af9c87160100000000000000bad0ce7faf3a7c414c473715f1cd5315a1f677810c0d939107b6222dcee0863901000000000000006ed90090a744a0d55adf8f8af5af4d5198bb67220ce33fe71121d7c51f27a4130100000000000000a8d27d01a03dad14bd0b30e752ee8d1d1ee08f280b6e983102214ab5420a80240100000000000000bc20aa968087f7c0d4bb35dd9c502db39fd7f4596a412880fdcd5ddba22fcf46010000000000000072f2ff3d21f4126e217f10f9d9bd18069c12eaab6922d073dd5241ac718e91200100000000000000e4e005984bbae507a03d158ea8ca3a87505ae3e8723d8f5bfffccb63a23ea61c01000000000000008a40c3acc862dcac958866b738b304be7d84c33d9420b0747eb82aaa21b8c40c010000000000000094cc8c46f9670417f5ad9492d17189c4e03e96122782e92824f05e176d68437901000000000000007a2430a3ba06afdacb8cdd51b95a8f94e97f6f3da16a16db190a83fc8d7f380c0100000000000000aa6e4b27f80410ae5ce7ab8e7bf083f6e6a87f87a784d6aca9e5fd9843176926010000000000000092c996c1fedd09190bb0fa8cc79e4075ad79eca3d6895d2a99d20e6f89e4182b01000000000000006867f5229884ed1aecaefe8f64079938675ada70f7de887cedb834b7982e1b140100000000000000942ab126935d35ee63c1c5b983847060d976ea91baaae648c966219304cd5d5d0100000000000000f2065428f52da2f7a881f9b94bfd38719bb6e5ff88a6800bbb3aebb1a9ad21020100000000000000a45c9bc40f46d50f1dd4f7b5d11d9eef1f5816b15e8a35c87a5fb16d1893414d0100000000000000fc3fa462e56b8a4aadc369f88cad272f9e52da4a11c4896c30e3e0ee19c403140100000000000000f228dda83a73032dbfb3bc5de5b3df009508b34162da7ca0b056ff18bdee2e350100000000000000bae8e68bc8f1b66fe3229ee72d77137b394c6b7dfbf55e424f9d2c82d5c9960001000000000000008ac742d2a3a14cefdfc819c03f5d439eb8325b7f0eeec0a9d4025784ba7e057b01000000000000005cd621b75f00eed01202da76aa8e16b67801d8dc8dd18b38e87dc7ae84923c38010000000000000060b521110672f6f871978fd3ac4a835b5e30c3fa727c04c70dbc543fcad38b0e0100000000000000e047754ec2beaaf49bded84adef9b7cd827641ada004b050b58859ff91abbc5e01000000000000002ab0b5cc358184be4fa29e7a3dc24806a72e55baad40ec9a117324a884242c2801000000000000005afe620da258a48f00c3afbb8a98161e977f076c7e7f8392975a4f0db4b57d6101000000000000001ae9aab4a890c558ac8ab90ccbbf193b3841083670ebed278b2161fa2ec7b30401000000000000009afa4df63a9a72e8dd0710638b6b6a10e37fbe2ca640f828c0f943e5ea3839550100000000000000c21f96601f5e485f5572b030f3e271268de80508c333b9316a701540a433292e0100000000000000c2d156c96e21691a06cecd4a396978f94cfb3a1760d41180efe382b7ce8e993f0100000000000000a4b31af719e5d9c3b69326ef920736e8b620b329eade475ae23a33fbd445df7201000000000000009281394b5d35827c826e1d7444f346c247b9a004aa0292a9ca2b16e0fb55687701000000000000000ca2e72555afd4c7356ccba76a2f1bae9032ec5f3067c2442354dbdc22f39c4801000000000000007e88cd54f47c1f4ddd9d3a198fc689d24a523fe186d526b14e476f14ced7db3c0100000000000000b225550bd99c7b1ebfce319d76f52fe96c661d6106a4b4c37fd4eede1ba4654f0100000000000000a84409a0440fd1d2d0ee6d73be6307f2c2ec7345cfa113ac7b197edd78e058420100000000000000fa4c94808e0f117a940a2eb8773ed91373dd5d5606c60cf9466f7835735c7a1c010000000000000008c21904ad29b5bb3f450de1e5bc20687a45865b5fa3794b3ca089e8c6af761f01000000000000005474f03ced668a1459e8ed416f510a16f551ec1415c42b292670545a3967d31101000000000000001cff1644f5e6828bbafd455f4b5924068f89955c9ad6a778a91cc8029c37c61f0100000000000000da132f2f832c8e2a4e268b4faa923d9449c94ebe66f03fa0ac4303f2ceb1b0530100000000000000a8d082a4289fe5ccaada604e70c4b1473d6fae4374663672e61474852c1ebf2a010000000000000036cc7d2df6c7b0ff8b0ec254297b35a8d235f7086fb54a3f9013a3a38809ef77010000000000000086632f5c57502c5a379039d1c9b7683d9336a4d1224c582616e1e5d9104d424d01000000000000009623ad5bd17b75cc58839c76474636ad5675c519e15f090ec008eb626db73b140100000000000000f43905b3e5b1d13df62b64123a0552901a79a5aa0681fa75ee831b65bfeffaaf0100000000000000040000000000000002", + "babeFinalizedBlockWeight": 5555666, + "finalizedBlockHeader": "0xb6f254606ce1cfacb9aaf4f1f4aee1cc966531a808f638a1fd7c09777afa3b13de254e05f93565c619dd0c00611f91f907ca2869505a1797200a7abb5ed81ade871b7b2225d1f25e90396bf5993dcd78fa7d7a7c85da16324998a51a51427a99813411720c0642414245b501032801000013f7211100000000d85c75989a615f9820cd97df8ad16363f4396b48f4eac2c7a1f2c80377572a0245a2e027a37dad4574894e5843c41efa40db89d6c125ba9d3c6d5b7cd6aba5016c1096f863352bcd37fd6810b447a0050ff97a0046b02decb0cdee9cd93fb80e04424545468403f72fab5598d79e9acbfdfe5b399dff53e4f2ab6c185eec189ae84db46e80a84a054241424501016286fe0da221bf64704163dbdf662d7ebfa8602b6ee23a44353f52353c3c83788a670662bcbb2c4d5f6cf0f33dc1548ee5ae385fb5acb7f9eb7f4fdc9d5f0c8e", + "grandpaAuthoritySet": "0xa5046f706506065685b322054d22e8a1f23ca9df75c32a88dda5214ad58b553b4cca01000000000000008a239af78d4659897af698b5670533fa6d215864be8c41e3a2fc4309f9f83dcb0100000000000000e2b9e72d9202e99526fa626d9a6651dfd7c1daec8fc6ba1130af96f7d21a42da010000000000000056b838dd2005e499be47ceef086df4ca9c5fbc1f81968391c31af062a8a8bef30100000000000000e5914426faf919761a293345074f106393a9144420b3912e1dfe1f438975d21d0100000000000000938e7a90b6bb370ab1de25f714a6d4ec79766f0a83645df23e839b08800bc16e01000000000000001c28c9994bc2a6434679ebd9e2d29f49d2dc1b0a9989eb144d3ab500875b1d070100000000000000c52bd20e1e6b99f0bb13f67a2b5456040fc2cc06f8955257b5bbe98c92637ec80100000000000000b1c91fbb1f574b1ab4e69685a0b5bbf1368c488e9b5e93766b05141be7654569010000000000000057c55b2bbb6b86d6e9aedef9b51904ec5b29d8c1271308aa625fa445532738320100000000000000ed70004b41d483626fb8080957192ded96e08afe38fd0d185ea02bbf3b2f6a7601000000000000002b76579e522d78199a07d5034b9b91696e831618597c428d75a42eaeaef58af00100000000000000e8d7333e457fa740db924866152f31c3bfa6124c0367b0878a61aff2d5d6e27e010000000000000084688f3dad92f60e8dc05840bb64c522cdd7b9330bd38ce8cbc1d19947a334ea01000000000000000882c3226125c75f50ded1a7c40761865f14e1aa38c26ec51239b31ea4605859010000000000000070ba6e5985990ba1b1392713236f1b50df750f10f744cc6eb95fa7c5cfbc68760100000000000000d343862beda4cf485b4a3b7e9b62d3b7e6263b47f65a7c88c88f6e0f1350c7a50100000000000000bd26ab1d5334c20a4a6840be7bab84b98aec00f0d49eeac5b2c93f4db06dcb850100000000000000e511d441d6d3c822cb276bb2a14b1c8071d9fe1995802383fb5dcf8a92edcfc20100000000000000bb60743c9aa7dcc48846b6dc1d95923d34e62dc184d9e4d99f0a8de40e8ba3b80100000000000000f92d39f102331311ae6a4d051643cf10bd1490a5b00afaa4edc7d5d6af90f78b0100000000000000079d8532c894439913dd3a2157dc396c83f120c6daf77543c84c60365698905b01000000000000000e0ac68072ac35b8f19f98d13385b6eb75cf6fd4d513d9a2abfe9711b19883bb01000000000000007818639057900f8fb58e3aa8180f6108c251884a9fcb8041ca645cf612bc1eda0100000000000000f151ff04cc1a5380cb00ac1e4dfc46abc031c4450877a4db963bb3522ab51aab0100000000000000a8dbfc6cb88ac105e25b9dc7f11e883631824647cd4d0c18014bb6239627b29001000000000000005ce9f5dbcde6b3a066cfe93e07f0066fa7aa3ef8511d34dede8aa8f7cba5b68b0100000000000000c8579421534e4e52ba78c6ed533bf75fabfef7148b439a7585754a7cb0b892220100000000000000b966c337cbe37b05b4488b8b92e6f3938519bc97bebbed5f35de11ec28dab6cf010000000000000041ef4a31eb7dc1e01f4630604e1908e644d7cdee3f66a60f98d6d59605326f8b0100000000000000890f5c296681b8c23038b3d36a491ca9e0e7e809e6455b2bcd28a13700f81abb010000000000000098df914cfd089eee8993fbfbd1522d6a31700c98bdc3a31cf69014a0ac123ecf0100000000000000799363fc98b936b54755c8532ae88418a28c3ba30666e6e68dd57dd0ad80c00d0100000000000000acd71d4269b3ba2a9de822d494c4d841708e1519c08de41d7fc6153eaf48da8101000000000000007c1024f3b93e54cb1cdde0d2f685e2e16cadabe59e407ebc45eabb07efebca6101000000000000007c7d79c1d512ae41cb79c68b2d0161ffe0824f15f7f056b02274e5e1eb8104660100000000000000fc0c1da84f15c7ae1216a9d1b932567618caf13e44bbb929c7d436396ee70ec001000000000000006a1c3443483a34e653ebc3d0857c00a3c8b48ff2c5e9549880ef47eacbc05c020100000000000000dac2e90de824b109043f70818d53eabe05e79d518bda504e951d7f4056b0b2720100000000000000652f455eb3d30486151c716a4031bc02bd00254ef3e8290fd29f946d958a46b6010000000000000044d68d3dbde0fbc3d667b7a004882caa9413b54785d820dc3654aff3a5b8e57d01000000000000007977808620ade75f3efeb26b0926229e0817c6163399f1d48f39ece8159c9ec201000000000000009fb61ecc2dc719b3efc8e1ac6e9c96edb4adbbfd9bab1ad2f8a013c5d8d5c48b0100000000000000409c49abb067e141ddd0a223f41a33956bb206dbcb1ce18a9b579232c11207a70100000000000000ae6e6876b6e4b821c67fd7dac6df59772f540dd76c7012c4fb9ef9d13ec863ec01000000000000003bf5b70cb5789c7ac4f6a4c97e6fabfe7a58fe9fed1d79f39c2aabc2c5816ece0100000000000000aa3be8112cdf851411fe9e00fe9ef0a6b58217326ba7c1ab7ed9ce8a34620b25010000000000000025a5b10abcc6e32a4a9f7daa0ad1d9a9ac72194e061bfbf3f064a8d3d8d688aa01000000000000002f40f2660559a4472aa7d2b5dac22c8925b9baeaec9fa2463cef2a77eb9d3a1b0100000000000000fa2c21f1a03638d4cb35202102240c2b85f5667924d5838cc503721117049da60100000000000000bd7acc9ffa9ec1eed06acaf6a0f4f48ff10f83681b19e55ebc4c3a969df2e2ce01000000000000008c461493dcd314f4b384169f3741954d8cde37bc8ad988149e40ddf18b4b95e101000000000000005d9af90688fd70834d26dbf19bc4f034e1ee3442c05c3603b798fe95a2aefb620100000000000000fcc0d954c7d519851e0094cd9a015b4789022a37091e3a04791d0731bd85f0d30100000000000000671af96bdaeb0dc9d8e1e61ed6de04ef1bf1bb86da5b8f392ea131bbda83bd31010000000000000076dae0ab6c60b0be802d6916f968b16b082e3d62ead357f5ac6e25ef98622d0f010000000000000062849cae8655a29c4a4c53ae3a5ddaf8d6cc53ccfe093ee97ca2f94ea85b570a01000000000000008663371a5899d5e7a8bc99b9a6ce24c8c3f5f1149c1e70accf9560405c1a5bf201000000000000003d28789c6d574f3aa6d14360471901c5bf8255d072c2209fa22ac773bd32e5bf0100000000000000cc0c6a91c7971438b621cd9a3bd37a67f52ec4093336585d1e2c73416195e28a0100000000000000de52bfa88c4a76bb22fbebb0f078dfcc5a327034e0044e8f8034f2a96e7adfef0100000000000000bf3fd3d4065b306638662c3e789d830a63d9b343cef5f863d346058387844b580100000000000000a5aa8fc244c0d6036f96ca0585214448d94a124157dad6a09b585d1638c2362d0100000000000000b98c920666586f392d129d480e78a965764ac82de45e691589b3aab7831a7f020100000000000000cb92ffeace78dbafe6fbf275741b4b38657fb81590712aa0bca7877931f6ad39010000000000000034a18d21097f479eecbe51b91c522a798582caafc787134bab6888854742406e0100000000000000f7c9f4bc8669969246cfb748ac6996db6cd4c1fc634d981a1093b2c3d7a2eadf0100000000000000576fd85592b4e01e1cb10b2ff002aee632e6e8fa7dfadb39cb788ee22854a73f0100000000000000f001e2e99b378fa4f2d1a50b28c3fcefcd7da3a66314af1280fb7f9cb429dd380100000000000000604ac1feb76a5f2e7100ea7c8546c1b40bd6c59fd96ef9d58c2e93d7afc8aa20010000000000000083a8ca034fded71f681224d5f905b69084b17a51c18f0a06aeff60e868898bb20100000000000000ecdff472d5abfd36184c96ca7f82bb7c60ec003b10c61abb1542e215e8d04d330100000000000000c8185ca8ae6330a1e03490e132163adf517f76402ecac6881a51c8a14ed62f9401000000000000004a68c3ada00a5c4248e74840b836cdb87eec6adbf99dabbb90a8ded6e04de6c60100000000000000c49e3cd2c701bb845963c2870dcca12ed070c3f67ffc20144327a93aa6e896ec010000000000000081b1fce3ee9e31723f1023eaa9f8793e8663e72c50fbb0fbcea9bc78bacc491b01000000000000002dad5b2212ee688f2eeb9ca1fb6a90574f006dc1c6680ac3a8523363a248940b01000000000000004bb953c285fc6de7ef27baf835e8d905e60d86fb1bca0e52af8323e9d1ff219d0100000000000000125d5411df8049d1e96d4a22ea42cef5efbe99be5a1a8b69e15bea0773ccae010100000000000000b7c13f1239888cda5c8e6ac9ea10675df17633368906e66a487f91ddd3268ca601000000000000002cd51e09c3197e04155b78f3d97742ceffface390dc46f81f2613a94b2e483fd0100000000000000fb3a06e07b02896157fdc7230199503899221cd21bacdd79d2469adb1cc39ece010000000000000052912b3dfd0ccacd00586b97f1abe32431a2f6fa9c2b3bb17837a1ecde61728001000000000000009c75183d8dd36b79000be86dfa2618a417d7ac181ec3fc8a245d3dfb361ad3040100000000000000ff80f99fcf0f4072402a4e522aecd41ff231c5b579d978d0383dda0407ee498b01000000000000002626d4e6ea5ea56e0d4d6c00064778956aef2ff2e560080f27f180c97d41bf3001000000000000007c4082f9595014d2c938afd242c5f4a285bf8d488ff134e60ca42e3efee5761001000000000000006565187c86eca2aaf37db6d59405535a5e6dd85e2743a07ebf50e55c2b7fbc890100000000000000fc0cd2fc1e96369f045265e9b6513a200d755bc17e95c74dfea83e41f994d03f0100000000000000d1c146d2429a5a827660008721c7a880e71f44feaa3dc75524c1a9281bac48cd0100000000000000c68c7e0bafb7f0fb65a79f7517684f7693e7ae6435fb72773c3c52438c669e6f01000000000000001a13a82af5e22b9863c01e5f0f6bdcebc4a295934e339fa915cada1d5eba7eb80100000000000000c8be78d05f652edd0a64a5865455de36d0fadb0d91c470fd344f8de23c8a6b9c01000000000000006ad5224d5c8f7fb3ae15dcb3766c0956ca627a6c91e93c4e770a2908e8f590150100000000000000f5fef7a87c9f3917fd28640907ce59ad26f33e41baa25d8ead8033ae0b944d7901000000000000005d0124063ede3e49f037df33948477235e5a58f93f8b98bf7203f25e11d4f0b40100000000000000225c0d8471ce0f8bd50aea0e5c48b863788729eb6c06aa8f171adc6ce51bec850100000000000000e4dc36bfd9f67865042b7f3bfb4a07891f7b757b1a37c1ba7dc6e395f3e4657f010000000000000085b714accac0654ba57fac59b626dd35802269d2c1d995cea7c335cb05a88f7f01000000000000007448b6f6db7cfffd8650a1f3f08ddad1e114321ea770c9cfe6154882f586edb50100000000000000eea0e8d1a0aae5e5cd38dda0e172b49f8ea02287fd7d2ca79ffcdf6e593a283101000000000000004640d5063c8c8223bafe00dbf362e839c08d3cdaf6cb76035a191a01068d815b0100000000000000e18ad428af71a3668336733b81deb31ce4282a4facd87859cf5e0cd788c9365b01000000000000007f6fe3b417c26965a21ccf584140ae4705672bf1a20f5164e1e39af1378cbd0901000000000000004d04ebdd4185dee9609536d870ba5d984a6fa435aeb1fb611c4de06d57345b7a01000000000000002f4ab94586b2ba3b4983962b30aaa4faff06b6cd67ff1b6df06af0d9fcf34d2a0100000000000000587473ac474bbd8c99d14bec88d614426944b5c84dbf2912abac7610741560ff010000000000000064c7595df1bbbafa64066afd55b368dce0d349053eecb2e0d76eb41099dfed2d0100000000000000f3300017c9cadc38d61b118edd05c0540768521f88c5092215e47a9d0403fc7a01000000000000001935d43843c66ecf76a9f4c4229de9ed7c172f52aa53d1a279f2856a736661b80100000000000000e04a121fa307ef62bc69a3b9808fd11f0daacdd38a3e2fd12d711103b3be25a20100000000000000293ec1101d6cc9df89a04ede0ac8ced7418803cc1d52a36ca8e45cca734388f90100000000000000cdeaed45451971dcdcf886df977f31b3c004c497037d9940bcbbf2bd6dd2e3340100000000000000cc5dc1c5155dfcf43ee8dc4443292e966cb3226aea4fdf88e73daa259d66b67301000000000000003dbedd3a4aa3dccddd8a7a2ff9cd4e6a8fb75daf30ff5d6fbf9e9edabf9bc5530100000000000000096e6c93e51502bdb63438d1cc1207bc5fa4cc1a1330b152ce46ca62f0c88ffd0100000000000000771fc7d8d2258e91fb78a575c8cb68637ac1bf4d1e82156fc498857fbb808dd50100000000000000fd3d1c4982441db21060e8834c5ccb6331e81fbfa01756770dfe297d5038ac950100000000000000552c4bfa942bfe23abb38aeb5774a9a4a208d95d1e56681156e0d58146d16bff0100000000000000a717e6564944b5d85787a33a53ccece07dcd37ce2f375b4e356c328858ac475b010000000000000066e4852a274c679e66373bb75519916cb769df3bb4f37ea4c7ab0b7eb59330940100000000000000a703a37bd5d93619bfb6ad72c24840b396b2ddb8700db2e1d372a82363ec7d58010000000000000081bbaa3313b09e3b0ea2817c3e968a33587ec8928539c3f3a6d0e65644612f490100000000000000b05f7cebc58de884b898e3672dd4e6bb044d9196ed35433fa52298c9f9420a5a01000000000000003d884e3f58913c10c26d8af2a095e231079a3a0b69f775052f7173ff1c3ace2e0100000000000000c13b603b5fe774d98e59c26fac03f8096ccc42c57d0cbc6a443b4f07a3c077920100000000000000be6b59cb464fadec4e0b22a9f12857ba5cf7a14c4f9551439d36305d582dd7fb0100000000000000222ee6c6a6c62d56cadb4eaad5104d595fe962fbbdd551c81562d3b509212907010000000000000074e8311ca9547c930ce3fbf53fa1fca21b847544033edc1cf40e3c762bb1f17d01000000000000000aadf1b2009026f8f5dd75d532e91dc756fd47572aa0f3c15d26790e6d6b2f2701000000000000005b64aaae945b4c5f90242dc5d9892f452dee7b41262adc26b494637953faee1b0100000000000000f5ed118038230c29a138443aa6772e24aad7567226d6dd98e5596856a98166c90100000000000000ec80828f57d0bf2a8c879800f7267989d5603452b5a09e06e839312e39ebdf6f0100000000000000423c37aa1a1ae4341159972376ab5517a9dfb494695bb3744d714cddfd8a5c880100000000000000de6922a4fe488371f2053cdb3295a450f21c1ca5dabca73585ee1decde6994ae010000000000000042bcedc810f3402093a06ec193197a1af0bac2b53a5d919407c46e650156e45401000000000000008ea2528e80e6b0d60f6efa538840d0f00d1067a924f29fd51ad68c0aec3fde7801000000000000001bfc78866edf1c38c02c1d1fbea39a2a33f46227dca527ed002d96532e61114a0100000000000000c0852bc9a3db8bc74cc2c027d96bdee85e0d877b6d016ec877e3cc5c2419a9ed0100000000000000bcb33dbc9c339b5235097315d17ce8ac3bfd0769b9b86fd36d46016f29e1ef3901000000000000000dfbc1b5757e1f0ba348f8af64fb631aaff86cd21fa0529e0bb1fbab250879260100000000000000d791b58285e2c4f17c82a518e099812d2a3f63e1090f1cb2576e2c7695ee24970100000000000000e05521afa0e7c1526a49e1ca6ec5c5386673607cf6e53d223611850f51d37fcb0100000000000000c838d59dfa1fe517a38be275f36542893be5f52e069d7cb9e153e56567b7a7fb01000000000000005c3476954f173e1be823259907f3fd4bdb2b534d090ea5b7b2b3ac03403a80820100000000000000338c84f04302f60d5737266add391582ca45da82bb42ff0d503609e79193a53e01000000000000005216ff912251cd2bcf9db256b3927e737cf909e4b53a375586dad21bb7b907ef01000000000000001b94587cfb3b7d0dccf84ffbdba98a10199e5dfb1887eb15d051444de5d8627e0100000000000000b5b64e522ece2a1a3325f95082e33bbf5832e6116d378ac0f437b7b49727292401000000000000009be52a6b66e1daecf1abe913bfe4bb0cc07e1025b0f594be94c6003b526ec33b010000000000000027ae2aae696c8f72d0551491d02352456641045321b5ff3b478efce87410556d0100000000000000fe7280b7fd8850f810d56d30b0e3811aaf9bd4d4417fed9a704d9fdcc1f7c80b01000000000000001ec0811cbe4f2ea1e5a714d3ba08c6d7fdec138bcc6406da3c6cd32f1686616d0100000000000000faf22cf4b053a1a03afeea03d07a83a4693d0ce0838d68721de18d2e93f91e970100000000000000efb2050b4af1539f3d01100a9241f83df452dd165079d6f3cebc7a24c0f23c5901000000000000008b7baa89dbac95969a0042fa876a37eaccfcecd3591c4d7ed0e8051aea814cfa0100000000000000fbd06da169daa41936401cd54d06ecb61cf722e3e1d34a9ac048d0c800014d5f0100000000000000ddac76c2a61c9aef4a9b3247aa0953187533f346466f02840235662440d2945c0100000000000000055c25dcc9cf8a08ad007ed9c8afb0ba53cebd129a20f194d272535ca9fa06490100000000000000ad7a9be8cc3225a30b0574e2016caccc4f7b516beb61d795ca050697500f119e0100000000000000cc8db7467349129a20ab4ba7e705044216651c0eba9d39f1054849edbcd677af010000000000000033856a1d7235b63265cfe8f644bfaa63f515d1bd243d735cd7e74e792154e157010000000000000006b9e740c0a0e1f8fd31717438d5918ed8680eaccb70fdc9511931ce0d164ae50100000000000000b2666450acb9f43c1884eb63028d4ffe2aca22219dfe298ca17355634f80482a01000000000000002565e04c6e0b665fac87f8238bee74837f8f621ed63409f3838d263603400a9801000000000000003a1e82e30d0eead0b6f4b8a23422d260890d9aabdc2901c81ec459ead88ed7980100000000000000056986ef8b6f0f9e092e29540e8d220b40bed9e459e7b9d0247e0e156601e3c201000000000000001de97cc443740a0e0e0fdf166ef4515c387fec450fc4d4e141cebb41e1b7f8e9010000000000000046b45ec0a71351bec5563187491fa73d602d68d56b9faf3d59ba80c1fe66268601000000000000005d50d6099c7c88f367568fa473b44785acccd030251627cb371de16e5fa704260100000000000000301b983e5e1320b7c9ff0f2525121b9f3007f68c273ba8ff662b7244f1f95f210100000000000000ef5b937d1eb14d07785430ca8efb57cb965060fac808b9a25ab9d4ab52cf0ad101000000000000000c3e4afee23a9fa0f291d0789dd41b4c0bcadf40b12e7ec3be5532dd1e7709da01000000000000001c8843e77038144af1b1e2eee9aeb2186aa52d5007f0c91e5533f46b0834050a0100000000000000a85e95b303450b71e03368ab702fe362ddb6710e9f374e0814f65fe4b46bd3f20100000000000000064d822e098e64fcaefe184a6038701fffb2f68dacf64f9c2d007fd58da92d0601000000000000001df7a4526aefb5459b9794bc7305a93c502aa5533e6a2656787d79073ba8fa390100000000000000d3ed238f520c7ce95663aeb66448e9bd02d68779471be8b8f0fb28265b44ad51010000000000000096c6301cf86ba237ec1b24c7d9b6cd3b872492d26d58d54a8050f18785af334501000000000000006bc212da0019992aadf9e199c52963176957009cdb2fe56683bb696efc3c7c88010000000000000028139ae721b771cf57d5afa58579d8dc0f04f04c1e1b631cac64a9fdfaf8b5250100000000000000c5f7618b9d80d894e37364f041cc37cb1350386bc5e236dc91a41948e976c0e60100000000000000b66e24ea84d5e02a7b2b58e20bbf17a0f2a19c4654bf8b07669ba3b9fc4a468101000000000000000d8e0ceb31d11634ff50f20c90d57239a9307602e221baa190c784b144a7eb980100000000000000cab191a66c54e412fbe7fbc074ea0d916279d55d856d870d15bdf88c00538dda010000000000000021e308222b7f6857c465578da5c45e699a5e94b94b5ca5e0d5d7dd4f8ce2f38d0100000000000000f0d6d584f670650a8ef17a3f464690c6f35a180ea2a50c74849aedef590e314b01000000000000000428e3ccdba17d779ffba05c9ec7a6264187d13bf89b6009e97200474ad343970100000000000000311348bd0fc78048d3ae9d21584086744ae90ab51a6bf8469fbbbf83631fe5d50100000000000000c34f62968a87b2e4a9340a75004029dff5777a020f60fb287f08038491881f2201000000000000009c201297af3ce3f5bd1b375603090fca3f0edf53037a2da307c401efa9df39cb0100000000000000607737116e62ba11852c68515933afb8165f3174d594eef6d01dd7eaddb60ec301000000000000007d4537d34d3e6ad9125e8ef6263c4acbdd00fbd7bcb7fffee792215e061d4ab40100000000000000fdb1079f081a79fbbec55b7892414a68d47b6bf34027bb90ab25fc4e52fee633010000000000000065dc4c53802befd2acfc3d6d3f66eeb84947e5c15fc7a2165a375352a4faace101000000000000007c39d28f80a16bf0cedb70e36c5ac9063dd9b513c5fbbe2c2222389f428921340100000000000000412b48c01d22a65e62d47d734768219bbd9452b8a4ea250dad445e166e7958c6010000000000000037cf0e2296974765b587766e6f36c0b98f69c1698d0af2f8c3490841509ccedb0100000000000000a128a73c5eaa1803618a75bc368c38e4c5cd40999cb72d615b8af1d30cb8cf1d010000000000000020270811c3dc453f37b27d958ef7ad7dd4c7f217c83f94bd0ecd84c60018a866010000000000000020869a63e7a343094ad0b4ffaa3d83344ffec8c7fb9b177008f78d17eda7dcbf0100000000000000f22548214662b5637a61fcc51e28fff086f1c33e75b4ca5f1d806be6ef40f82b01000000000000003ee731da725307266b32393e3d353b49dcf27f3b55220edbe210af3094f1b2940100000000000000d64083c00178b8dd224afade9792fed8076031bdfe9efc5b8128e6372a9261e201000000000000001c6842f07fb07b318a8d00ce6258844374f8e894853ae5fd4a85c867d3fc32e30100000000000000417e120dbfd0297d59458b48407b62570987f1e907dd6dfa9a20bfe64eb489d80100000000000000443bd12fcb944a0e19b2f76ddd066a713a99d2dd3530a5f39275300d11ac96590100000000000000e793c0578be40676ea7aafc611a54c214f6694253ade9652a3f1364823042d6e0100000000000000edcb49c54783d276bf63f9d99bc74b76b30c95840c637174df7a7521a1b8c1b301000000000000002e6e2cc41753fd414b31afb3288ff7050db6c1101a7d2c891389ca65f117df900100000000000000c2eb94269c5e5d2ab9a1a300387358679640763b053aca99ba5c1c9083ee717f01000000000000003c514ae67aed49aaecedb9b00a869eb46166cbc0b569e74880fa1a7d17ddabef0100000000000000b65475766e6229c87ff34263f5ca58525ab133962bc599ca0eab096ff296f4e60100000000000000c46e1407f06054aef4101fa320808fe7240ab33eb057a48443449f6b4412b5a001000000000000000412e872768f20afc94a4955a875801e085fde2688d0c0adf86b789027f2adbb0100000000000000c1b58624231cd77b450e0be515a576e8863cf47822e19b1bdf89bccfe65d414101000000000000000c802c4d0fda23bc38f40210827903d520a0a4cf44ae4da7fb36ff933188faae010000000000000042f47dad5949be7b7b8f81faaec17b1b53465b01b9f8f81e6a45f2fc74e12daf01000000000000000f56cd618bde95b9f1dca0abd7398e1e0ff6ecf900370efbd4702da922d6e8530100000000000000c696ade13ebfca6231299b7a3c0aede6830ec7b3533dc1d3ca9f46bf909f71d201000000000000002968531ad8bdf774cd5115dca724f910aae6df7f60126e4314b018bc0754aa94010000000000000098a6defcfeb3dfca36ec46eb373734627a2c395cdd2d886046a11788ed6467af01000000000000001701236903f6e923b35630f99bc6334e29df55d03a136d8acd93bac92f32045b0100000000000000853ba986f8785e8fc1a2ae2fb86f17cc91886d931182ccb8d148379a35cbf0270100000000000000b5badfa83dede7b19aa3b1d10c6d0bd5f4adcb357862aec339e9d49b23d7bd2e0100000000000000496826b538d97906e14d417b48598d7d591a483ab5f4c6786cd0b96239c2f4cf010000000000000021235f4afb5b0d8ea5123cd4be4205ed27dc25e5e08813563e47f36359092840010000000000000045f84b0909eb669ce3d2099a935e269d6ebb091f1f8055fbfcf07d6efe7f43ab0100000000000000469939d617b037a9a3951e2510654659baafc8d6af199edd413b9d82e3d60fe701000000000000004201a9d54fc376fb7fad6e22bff58bba820f9f6a8318d812eb6578412293a9790100000000000000768d47629bf074d88ded200706ce2f2ae38434c192129d1736ef8f6af01562b201000000000000006ff003a05f8b03acb05d2c76e1838cc5f370585721eb34be16aae45af43ffef50100000000000000510a0c61dca3e1044d3540c08272054462c6353aac4dc06cda265753b126b3850100000000000000f8e50e8b63b242e30e5bd266584b6fc690817455d2eac1e04d146dfc1dd3614d010000000000000094d296df9ca6256129cfb8d81566c02c3693e86b34634bf36714a56a393369980100000000000000761ce3eef4bd0d15601aef70728f54ca72a9859e90841c3d02d5060201671878010000000000000058200bf3469ff32dfa47842359f4158157073ba54db52f48e79e7a452a8828190100000000000000f4d2f2eefe0c1c49856517be1829a9c54ec4de2dad8825dc5e366446729c160901000000000000001262625cc59c0e4b7548904c31a02231a601305881a231d4dea45eec6cbbbdcc01000000000000001e2c52e79d3439f21dcd0ef91525d90278088d5e37e338a17506c5452360befc0100000000000000c3576342cbf99792896ee5329b04ff2eee2fc2bb6d53c5c03d52c8957ee793fb01000000000000006ad4bc289673029ab44f3045eb6fdd3589d05e0e5fd76ee017f650a662f898fb010000000000000025902a5eea68f7b0d1852f3292c8464f44aa9ad35e62b29fea99c172c8ec00e3010000000000000062aca2798b15062d38b79faa681032eae9f6d465451fa864dcc1ac58eead4517010000000000000058a00cd4a54847fa7e0f328e7eeb5a7e05801809b9cbf131d92c32f74bfdc18901000000000000003a3609ac590175c65fac57df5db44b5319e6fff43cbece21944019694f35d65c010000000000000043601ae31cf5b03cb49395dda13809f7398d8670ee4d2172b14a1ab05986ac3b0100000000000000e7f57bd0bc756f24574e3a77c90616adb393e9d4ffceb2c63df19f605cb6a024010000000000000030252d94a73496848040ab9d9725fc9a21f0a858e531cd0fad5456265387d4ab0100000000000000ab45f730dd495f657b61b2777091fa8cd11b5a626bea2b514e5e6118021037970100000000000000390588df1c30c4856ce060537a6b6dff06db020283ff746b90aaf3056e3c63f601000000000000000508e81a6bc4971d3a3d986a1eb4cd13e7ceea563a46b70e1a0d47a212be51c80100000000000000f6f23ae9bb4c269a5959d51f9173270ddefcc354b63de77b672bce58cabe60c8010000000000000049d34c7034103f19bbeb2c8029d96c82c753b088fccef038e7c5b009eb46d6e7010000000000000011e721df8def15eca4637f72341cafe985ba5bbe276029bba0d9402c185f3830010000000000000062a91ffda8611ffce3edeb628ea6d3b8b12e5b2448beda6da8334e77a9ecbdd70100000000000000c9d08d1297366cbc3238dc5f2139311710ee0282647b95a08e0b799b8ba336ff010000000000000071893ca83ebe6ee06c3eb10dcbfaf70d8267959f6159b4ca36929a69604cadbc01000000000000004ad600cc461daf6d287d5d2ff0791f74fd7c6aab5714ad50340187a7ce509ea90100000000000000f9909408f9201a13dc8b04796d715d89beaab7dca5b7f3aad244165bbdb1a6810100000000000000b059f42934ee377fa5377a5886e2846c28556fb85e6488b8bf21c09c86b80b19010000000000000026cdfb88461d7125f438c599e062799219b385bacca93f3cdbe5418c9d4d49930100000000000000d680f1743a67c8eb21a967d2bbc7daf20b13c1432674d02af695779af8e3638901000000000000009a877de36e4efbb024fb1dce6ba09b9d846ca09afa76eb708be2a8098a9a67cb0100000000000000f2e75ee2303b2cf903b882c9888cc1c51f978abd58ba88354dcdad717f4b8a5901000000000000004291520332b14d925a56c4d78cf5f17267ef50cc161b60f692b874b064b5a10a0100000000000000d45705ecc1f19f97d4ba95b672c4514c65d286dd5af9b8c21ef9c28073855c970100000000000000b426ef68c50245a003dd068c5c086fc9012c08a7f9ec53fbf7df4318261c8c2c0100000000000000a7dcf50fb724298ea61a8dbf24c81f866ed48708e1c2f914472f195aaf1313d101000000000000009e7b1ae0e4a533cd45ea38bbfe1d027f15e0b1ba47c0cb16487803c838d8b2e00100000000000000e6489beb573734e417fa040e59af4e44789001fad63f5df871818cc70714e6d0010000000000000096847258e5fdd261a8df1b3958366b29d28363aeb96a71c2b705e4c8864b97e101000000000000001bbc459bd14434c8b961d3c4108986f28e50a33c825b0cbee11b22a60b90a6d30100000000000000dd38154bc6c5bb16c81a06f3c11fd6e9114b7856afd3456982ee630dc7fa772e0100000000000000716a181407939b3ea68289e09265d3b9d8a8f21ba7d9f50d8ef8a86fa3c0fd030100000000000000842aa45a988ef56a417ef1390e74e62a1f12fdc0678759d408090144958fc81401000000000000008e3d1c8c0261e193e87403c8959919ef035ba39175d3ba22f31190303601412e010000000000000094416582fe359e0a310da59bf93df8ff9665b89071d4977a9a9f3390b75c0c450100000000000000ac5230e4338aa51c44ab6a0fb903e6fd914fd029dab8f7ca447be54ceba749340100000000000000a7254986c00f94b1ced526583ce2ffc0e853afd27a8e90cd57178a328e6338660100000000000000e94b9a9f57120d641f4ca348ed27c7f078e49302ed52cfae2373b6c745f2f4c80100000000000000a76b32c8c28cce206ddf70ff3ad591ed01a0067f9f9baa77f9052ce938d359c701000000000000007fab4769c41af85b9de8e784d3b1cda093fc0a8dffcdff21e914c62f131c77580100000000000000d2f1b3b5f7eb1b0d8328911d9ec920327d7a30729e80c1238f86dfe27c4fa3470100000000000000b2e57d4c6f8e6b12ac5a392750eb93c1f30ce4820d8982c90420d83420a2a9bf0100000000000000841584e602ab975c936fe7c2025fcea2b5a0061e839b1ad96528942b33d0974b0100000000000000280084dd48c4c3ebf743e3a8448e2815fcf183dfd0121c19453278da053c20a301000000000000000ea1cd7154cd4d50d009d8db3d6d40897d9170ff97e6493c8d0dd2ca745823070100000000000000e5644959f5f2f85c2073036de42c8f0ea99925037c8675c3dd41f8dd02fa50140100000000000000a4f4bbd302c06389ee3614c0943af03d52364f172ef05021aa93d12aef53c32901000000000000009d56cbbe3020b94ea8cb122df6527ceecc8cade4632e81f23b485e773d27b58c01000000000000005fbd72d138026e0a9383a33ac56ea2cc407f866e26832920ee32540cbaaf9fe90100000000000000b07738d501326a26acec24adfc2284f2f617e4042c738f7c0f15dc1c9006652801000000000000002929dacc53614cea1848e7ba20fdeed7cb0bd81571aa72dfb63dfc84d3965d2b010000000000000053bbc598c69604e82050d2008b95b491ce8c826dc39a2e300437ffacc86d52ef01000000000000002e67b1ee2cd70ab302b783acf6494de67d8dc29578f10c20745f809d094ff274010000000000000056b2cda89223ce64d8abd543ad66552bb84be82fb45e0ad6333e714eb20e55180100000000000000730800000000000000017789530100cd2100000000000000002904050001000000000000002a0d050002000000000000002f16050003000000000000008e1f05000400000000000000ee28050005000000000000004d32050006000000000000009d3b05000700000000000000fd44050008000000000000005c4e05000900000000000000b75705000a00000000000000176105000b00000000000000766a05000c00000000000000d67305000d00000000000000357d05000e00000000000000958605000f00000000000000f58f0500100000000000000055990500110000000000000095a205001200000000000000d8ab050013000000000000000db50500140000000000000024da05001500000000000000aaec05001600000000000000f4f5050017000000000000003bff050018000000000000008b0806001900000000000000992406001a00000000000000f92d06001b000000000000000d4a06001c00000000000000685306001d00000000000000b65c06001e00000000000000f76506001f00000000000000308b060020000000000000007b940600210000000000000025a70600220000000000000033c3060023000000000000007fcc06002400000000000000c3d50600250000000000000011df060026000000000000005ae806002700000000000000a0f106002800000000000000410407002900000000000000880d07002a000000000000001b3c07002b00000000000000764507002c00000000000000357407002d00000000000000239907002e000000000000006fa207002f00000000000000c3ab070030000000000000006abe07003100000000000000bdc7070032000000000000000fd107003300000000000000b2e3070034000000000000000aed07003500000000000000971b080036000000000000009d24080037000000000000009c4008003800000000000000255308003900000000000000735c08003a000000000000000c6f08003b00000000000000048b08003c00000000000000589408003d00000000000000d3c208003e00000000000000e4de08003f000000000000003fe808004000000000000000f7fa08004100000000000000aa0d09004200000000000000153309004300000000000000fc6a090044000000000000003e74090045000000000000009a7d0900460000000000000000a30900470000000000000014db0900480000000000000020130a004900000000000000791c0a004a00000000000000364b0a004b0000000000000043830a004c00000000000000e5950a004d0000000000000045bb0a004e0000000000000059f30a004f000000000000000e060b005000000000000000812b0b005100000000000000dc340b005200000000000000ef500b005300000000000000a3630b005400000000000000b69b0b005500000000000000c7d30b005600000000000000dd0b0c005700000000000000f3430c005800000000000000087c0c00590000000000000052b30c005a0000000000000060eb0c005b00000000000000baf40c005c0000000000000072230d005d00000000000000805b0d005e000000000000007e930d005f000000000000007ccb0d00600000000000000076030e006100000000000000793b0e00620000000000000088730e00630000000000000092ab0e00640000000000000083e30e006500000000000000731b0f00660000000000000079530f006700000000000000748b0f0068000000000000001fc30f006900000000000000d0fa0f006a00000000000000633210006b00000000000000826a10006c0000000000000028a210006d0000000000000005b310006e0000000000000055d810006f000000000000004810110070000000000000006548110071000000000000008e8011007200000000000000bfb811007300000000000000bbf011007400000000000000e828120075000000000000001561120076000000000000003b991200770000000000000058d112007800000000000000770913007900000000000000944113007a00000000000000c07913007b00000000000000e7b113007c000000000000000cea13007d0000000000000067f313007e00000000000000d31814007f000000000000002e22140080000000000000008c2b14008100000000000000545a14008200000000000000ad63140083000000000000000e89140084000000000000006892140085000000000000008dca14008600000000000000b00215008700000000000000d03a15008800000000000000f3721500890000000000000015ab15008a000000000000003be315008b000000000000005d1b16008c00000000000000855316008d00000000000000b18b16008e00000000000000d3c316008f00000000000000e9fb16009000000000000000073417009100000000000000bf4617009200000000000000286c1700930000000000000029a41700940000000000000041dc17009500000000000000591418009600000000000000bf3918009700000000000000704c18009800000000000000948418009900000000000000f28d18009a00000000000000bcbc18009b00000000000000e4f418009c000000000000000b2d19009d000000000000002c6519009e00000000000000896e19009f00000000000000519d1900a00000000000000075d51900a100000000000000920d1a00a200000000000000ec161a00a300000000000000b6451a00a400000000000000887d1a00a50000000000000077b51a00a600000000000000cdbe1a00a70000000000000070ed1a00a80000000000000083091b00a9000000000000004e251b00aa00000000000000fe371b00ab00000000000000065d1b00ac000000000000005f661b00ad00000000000000bd6f1b00ae00000000000000de941b00af00000000000000fecc1b00b0000000000000001f041c00b1000000000000000c321c00b2000000000000002f3b1c00b3000000000000002e721c00b4000000000000000ca01c00b50000000000000044a91c00b60000000000000022e11c00b70000000000000044191d00b8000000000000000c481d00b9000000000000006b511d00ba000000000000008b891d00bb00000000000000a5c11d00bc0000000000000053f91d00bd00000000000000ff301e00be00000000000000054d1e00bf0000000000000002691e00c000000000000000d1a01e00c100000000000000c5d81e00c200000000000000cf101f00c30000000000000083481f00c400000000000000af801f00c500000000000000d0b81f00c600000000000000f0f01f00c7000000000000001b292000c80000000000000039612000c90000000000000054992000ca000000000000004fd12000cb000000000000004c092100cc00000000000000031c2100cd000000000000006d412100ce00000000000000cc4a2100cf0000000000000098792100d000000000000000c4b12100d100000000000000eee92100d20000000000000011222200d300000000000000325a2200d40000000000000055922200d50000000000000075ca2200d6000000000000008f022300d700000000000000b13a2300d800000000000000cd722300d90000000000000078852300da00000000000000ce8e2300db00000000000000bdaa2300dc00000000000000abe22300dd0000000000000012112400de00000000000000501a2400df0000000000000045512400e000000000000000a1882400e1000000000000005fc02400e20000000000000013f82400e30000000000000007302500e40000000000000013682500e500000000000000c37a2500e600000000000000a8962500e700000000000000fb9f2500e80000000000000000d82500e90000000000000019102600ea000000000000002b482600eb0000000000000028802600ec000000000000002eb82600ed0000000000000044d42600ee0000000000000058f02600ef00000000000000b3f92600f00000000000000065282700f10000000000000057602700f20000000000000064982700f3000000000000008dd02700f400000000000000a7ec2700f500000000000000b9082800f600000000000000e0402800f700000000000000f6782800f80000000000000019b12800f90000000000000040e92800fa000000000000006c212900fb00000000000000a0592900fc00000000000000107f2900fd00000000000000bc912900fe00000000000000eac92900ff00000000000000fd012a000001000000000000ff1d2a0001010000000000000c3a2a0002010000000000002b722a00030100000000000005aa2a000401000000000000fce12a0005010000000000004ceb2a000601000000000000e0fd2a000701000000000000c3192b000801000000000000be512b0009010000000000000a772b000a01000000000000ae892b000b01000000000000b0a52b000c01000000000000abc12b000d010000000000009bf92b000e0100000000000093312c000f0100000000000087692c00100100000000000075a12c00110100000000000074d92c00120100000000000089112d00130100000000000099492d001401000000000000b0812d001501000000000000c3b92d001601000000000000d1f12d001701000000000000d6292e001801000000000000e9612e001901000000000000ea992e001a01000000000000efd12e001b01000000000000f8092f001c01000000000000f0412f001d01000000000000e9792f001e0100000000000036832f001f01000000000000b2b12f002001000000000000a9cd2f00210100000000000094e92f0022010000000000007121300023010000000000003b5930002401000000000000089130002501000000000000599a30002601000000000000f6c830002701000000000000e30031002801000000000000c03831002901000000000000a17031002a01000000000000f27931002b010000000000007fa831002c010000000000005de031002d01000000000000aae931002e01000000000000441832002f01000000000000295032003001000000000000fe8732003101000000000000aa9a3200320100000000000010c0320033010000000000003af8320034010000000000005f303300350100000000000059683300360100000000000078a0330037010000000000009bd833003801000000000000cb1034003901000000000000f44834003a010000000000001c8134003b0100000000000044b934003c0100000000000055f134003d010000000000009dfa34003e01000000000000302935003f01000000000000c6573500400100000000000023613500410100000000000053993500420100000000000080d135004301000000000000560036004401000000000000b10936004501000000000000ce4136004601000000000000037a3600470100000000000031b2360048010000000000005fea360049010000000000007b2237004a01000000000000995a37004b01000000000000f56337004c01000000000000c69237004d01000000000000feca37004e01000000000000340338004f01000000000000683b380050010000000000009e7338005101000000000000c9ab38005201000000000000dcc7380053010000000000003cd138005401000000000000f8e338005501000000000000b0f6380056010000000000001c1c390057010000000000007a2539005801000000000000da2e39005901000000000000525439005a01000000000000878c39005b01000000000000bbc439005c01000000000000f3fc39005d0100000000000028353a005e010000000000005f6d3a005f0100000000000098a53a006001000000000000cedd3a0061010000000000000c163b006201000000000000404e3b00630100000000000019853b006401000000000000608e3b006501000000000000b8973b0066010000000000000fa13b006701000000000000a7b33b006801000000000000fabc3b00690100000000000049c63b006a010000000000009ccf3b006b01000000000000eed83b006c01000000000000c1f43b006d0100000000000014fe3b006e0100000000000066073c006f01000000000000b7103c0070010000000000009e2c3c007101000000000000ee353c00720100000000000094483c007301000000000000e0513c0074010000000000007c643c0075010000000000001d773c0076010000000000004b9c3c00770100000000000010d43c007801000000000000d80b3d0079010000000000001a153d007a0100000000000053433d007b01000000000000ea553d007c01000000000000225f3d007d0100000000000072683d007e01000000000000b4713d007f01000000000000fb7a3d0080010000000000007a8d3d008101000000000000b8963d00820100000000000006a03d00830100000000000088b23d008401000000000000c8bb3d0085010000000000000bc53d0086010000000000001dea3d008701000000000000e9053e008801000000000000b5213e0089010000000000003b343e008a01000000000000843d3e008b010000000000005e593e008c010000000000001f913e008d0100000000000065c83e008e010000000000006bed3e008f01000000000000a9f63e009001000000000000f6ff3e009101000000000000c1373f0092010000000000005c4a3f0093010000000000003b663f009401000000000000856f3f009501000000000000cf783f0096010000000000003ea73f009701000000000000ccde3f0098010000000000008516400099010000000000001e2940009a010000000000006e4e40009b01000000000000c35740009c010000000000009b8640009d01000000000000cebe40009e0100000000000001f740009f01000000000000372f4100a00100000000000097384100a10100000000000070674100a201000000000000a99f4100a30100000000000065b24100a401000000000000ddd74100a50100000000000096ea4100a6010000000000000b104200a70100000000000044484200a8010000000000009c514200a9010000000000003b804200aa0100000000000051b84200ab010000000000006fd44200ac010000000000005ef04200ad01000000000000b9f94200ae010000000000006a284300af0100000000000078604300b00100000000000077984300b101000000000000abd04300b20100000000000064e34300b30100000000000072ff4300b401000000000000d2084400b50100000000000008414400b6010000000000002e794400b7010000000000005eb14400b8010000000000007de94400b9010000000000009e214500ba010000000000005d344500bb01000000000000d0594500bc0100000000000006924500bd010000000000001aca4500be010000000000004a024600bf01000000000000603a4600c00100000000000084724600c101000000000000abaa4600c20100000000000047bd4600c3010000000000009ec64600c401000000000000a0e24600c5010000000000005df54600c601000000000000bf1a4700c701000000000000d1524700c8010000000000007f814700c901000000000000dd8a4700ca0100000000000039944700cb01000000000000f2c24700cc0100000000000010fb4700cd01000000000000d5294800ce010000000000002c334800cf01000000000000f9614800d001000000000000596b4800d10100000000000078874800d2010000000000008da34800d301000000000000aadb4800d401000000000000c6134900d501000000000000eb4b4900d601000000000000e7834900d701000000000000f9bb4900d801000000000000b6ce4900d9010000000000001bf44900da010000000000004a2c4a00db0100000000000066644a00dc010000000000002f7d4a00dd0100000000000019994a00de01000000000000c0ab4a00df01000000000000aec74a00e001000000000000fed04a00e101000000000000bbff4a00e20100000000000019094b00e301000000000000902e4b00e40100000000000041414b00e50100000000000010704b00e6010000000000006e794b00e7010000000000002b8c4b00e80100000000000094b14b00e901000000000000a4e94b00ea01000000000000d4214c00eb01000000000000d7594c00ec01000000000000e8914c00ed0100000000000004ae4c00ee01000000000000ebc94c00ef0100000000000014024d00f001000000000000fe394d00f1010000000000000a724d00f201000000000000667b4d00f30100000000000013aa4d00f40100000000000031c64d00f50100000000000037e24d00f6010000000000004afe4d00f7010000000000002c1a4e00f801000000000000ea2c4e00f90100000000000049364e00fa010000000000004e524e00fb01000000000000628a4e00fc0100000000000079a64e00fd010000000000001ab94e00fe0100000000000079c24e00ff0100000000000094de4e000002000000000000aafa4e00010200000000000059324f00020200000000000004654f000302000000000000ff764f0004020000000000000d804f0005020000000000007e924f000602000000000000c29b4f000702000000000000f4d34f000802000000000000160c50000902000000000000504450000a02000000000000877c50000b02000000000000b6b450000c02000000000000e7ec50000d0200000000000046f650000e02000000000000b61b51000f020000000000001625510010020000000000004f5d510011020000000000000f7051001202000000000000889551001302000000000000b5cd5100140200000000000014d751001502000000000000e605520016020000000000001f3e5200170200000000000053765200180200000000000089ae52001902000000000000e8b752001a02000000000000b7e652001b0200000000000074f952001c02000000000000e81e53001d020000000000001a5753001e02000000000000558f53001f020000000000008ac753002002000000000000b9ff53002102000000000000f13754002202000000000000277054002302000000000000418c54002402000000000000d1a354002502000000000000d9c8540026020000000000007edb54002702000000000000b81355002802000000000000e34b55002902000000000000c58355002a02000000000000d6bb55002b0200000000000007f455002c02000000000000c30656002d020000000000002c2c56002e020000000000005d6456002f020000000000008f9c56003002000000000000c9d456003102000000000000070d570032020000000000004345570033020000000000007a7d570034020000000000007d99570035020000000000009ab557003602000000000000b4ed57003702000000000000f225580038020000000000002f5e580039020000000000006b9658003a02000000000000a6ce58003b02000000000000e30659003c02000000000000183f59003d02000000000000517759003e02000000000000ad8059003f020000000000008baf59004002000000000000e9b859004102000000000000c5e75900420200000000000002205a0043020000000000003f585a0044020000000000007c905a004502000000000000bcc85a004602000000000000f1005b004702000000000000111d5b00480200000000000030395b0049020000000000006f715b004a02000000000000aca95b004b02000000000000e9e15b004c02000000000000251a5c004d0200000000000060525c004e020000000000009f8a5c004f02000000000000dbc25c00500200000000000019fb5c00510200000000000058335d005202000000000000956b5d005302000000000000c7a35d005402000000000000f7db5d00550200000000000031145e0056020000000000006f4c5e005702000000000000a7845e005802000000000000e0bc5e0059020000000000003fc65e005a020000000000001cf55e005b02000000000000582d5f005c0200000000000093655f005d02000000000000cf9d5f005e0200000000000005d65f005f02000000000000440e600060020000000000008346600061020000000000006a7e6000620200000000000056b46000630200000000000000ec60006402000000000000a72361006502000000000000e25b61006602000000000000f293610067020000000000001bcc61006802000000000000dade61006902000000000000590462006a02000000000000963c62006b02000000000000cc7462006c020000000000008c8762006d02000000000000ffac62006e020000000000003ae562006f02000000000000731d63007002000000000000b05563007102000000000000e98d630072020000000000001dc6630073020000000000005dfe63007402000000000000993664007502000000000000d86e6400760200000000000017a76400770200000000000051df640078020000000000008a1765007902000000000000c34f65007a02000000000000018865007b020000000000003ec065007c020000000000007af865007d02000000000000b63066007e02000000000000f06866007f0200000000000004a16600800200000000000041d966008102000000000000711167008202000000000000ac4967008302000000000000de8167008402000000000000f8b967008502000000000000b8cc6700860200000000000035f2670087020000000000006e2a680088020000000000001c3d680089020000000000007f6268008a02000000000000ba9a68008b02000000000000f3d268008c02000000000000310b69008d02000000000000704369008e02000000000000ae7b69008f02000000000000eeb3690090020000000000002bec6900910200000000000065246a009202000000000000a45c6a009302000000000000e0946a0094020000000000001dcd6a009502000000000000dbdf6a00960200000000000059056b00970200000000000018186b009802000000000000923d6b009902000000000000b0756b009a02000000000000e6ad6b009b0200000000000021e66b009c020000000000005e1e6c009d0200000000000096566c009e02000000000000d28e6c009f020000000000000ac76c00a00200000000000047ff6c00a10200000000000077376d00a202000000000000876f6d00a3020000000000000fa76d00a40200000000000059dc6d00a50200000000000022146e00a602000000000000464c6e00a70200000000000071846e00a802000000000000eea96e00a902000000000000aabc6e00aa0200000000000085eb6e00ab02000000000000e4f46e00ac020000000000001c2d6f00ad02000000000000da3f6f00ae0200000000000053656f00af020000000000008c9d6f00b002000000000000c4d56f00b102000000000000d90d7000b202000000000000d7457000b302000000000000f67d7000b402000000000000deb57000b502000000000000b2ed7000b602000000000000a9257100b702000000000000975d7100b802000000000000338c7100b9020000000000007e957100ba0200000000000068b17100bb0200000000000050cd7100bc020000000000001c057200bd02000000000000610e7200be02000000000000c13c7200bf020000000000006b747200c0020000000000005aac7200c10200000000000032e47200c202000000000000dcf67200c302000000000000321c7300c4020000000000002b547300c5020000000000007d8b7300c60200000000000020c37300c702000000000000cefa7300c8020000000000003c327400c9020000000000009b697400ca02000000000000eda07400cb0200000000000056d87400cc0200000000000090107500cd02000000000000ad2c7500ce020000000000000b367500cf02000000000000c7487500d002000000000000fe807500d10200000000000039b97500d20200000000000073f17500d30200000000000030047600d4020000000000004b207600d502000000000000a9297600d60200000000000006337600d702000000000000d3617600d80200000000000090747600d902000000000000089a7600da020000000000002fd27600db020000000000001a0a7700dc0200000000000022427700dd02000000000000007a7700de02000000000000d2b17700df02000000000000f8e97700e0020000000000002b227800e102000000000000635a7800e202000000000000a0927800e302000000000000daca7800e40200000000000011037900e502000000000000483b7900e60200000000000085737900e702000000000000b1ab7900e802000000000000dae37900e902000000000000121c7a00ea0200000000000049547a00eb02000000000000878c7a00ec02000000000000bfc47a00ed02000000000000edfc7a00ee0200000000000026357b00ef02000000000000606d7b00f0020000000000009da57b00f102000000000000cddd7b00f20200000000000006167c00f3020000000000003f4e7c00f402000000000000fb607c00f50200000000000077867c00f602000000000000b4be7c00f70200000000000014c87c00f802000000000000e0f67c00f9020000000000001b2f7d00fa0200000000000058677d00fb02000000000000959f7d00fc02000000000000d2d77d00fd02000000000000ec0f7e00fe0200000000000025487e00ff020000000000005f807e0000030000000000009ab87e000103000000000000d3f07e000203000000000000ee0c7f0003030000000000000a297f000403000000000000c53b7f00050300000000000043617f0006030000000000007b997f000703000000000000b9d17f000803000000000000f20980000903000000000000284280000a030000000000005e7a80000b0300000000000099b280000c03000000000000d2ea80000d03000000000000082381000e030000000000003e5b81000f030000000000007b9381001003000000000000b8cb81001103000000000000f30382001203000000000000313c82001303000000000000697482001403000000000000a6ac82001503000000000000c4c882001603000000000000e0e482001703000000000000ff00830018030000000000001e1d83001903000000000000dd2f83001a030000000000005b5583001b03000000000000988d83001c03000000000000d5c583001d0300000000000010fe83001e030000000000004e3684001f03000000000000826e84002003000000000000bba684002103000000000000f5de840022030000000000006f0485002303000000000000cc0d850024030000000000002c1785002503000000000000ea2985002603000000000000634f850027030000000000007e6b850028030000000000009a878500290300000000000017ad85002a03000000000000d2bf85002b0300000000000031c985002c030000000000000ef885002d030000000000004a3086002e03000000000000866886002f03000000000000bea086003003000000000000f2d8860031030000000000002a1187003203000000000000871a870033030000000000006449870034030000000000001d5c87003503000000000000998187003603000000000000cfb987003703000000000000eed5870038030000000000000cf2870039030000000000004a2a88003a03000000000000a83388003b03000000000000826288003c03000000000000b69a88003d03000000000000efd288003e030000000000002d0b89003f030000000000004d27890040030000000000006c4389004103000000000000ab7b89004203000000000000eab38900430300000000000028ec8900440300000000000068248a004503000000000000a05c8a004603000000000000b4948a004703000000000000f4cc8a00480300000000000030058b0049030000000000006f3d8b004a030000000000008e598b004b03000000000000ae758b004c03000000000000ecad8b004d0300000000000028e68b004e03000000000000331e8c004f030000000000004f568c0050030000000000008e8e8c005103000000000000c7c68c00520300000000000005ff8c00530300000000000041378d005403000000000000746f8d005503000000000000a4a78d00560300000000000064ba8d005703000000000000e4df8d0058030000000000000a188e00590300000000000023508e005a0300000000000027888e005b03000000000000d89a8e005c0300000000000043c08e005d0300000000000082f88e005e03000000000000c0308f005f03000000000000ff688f0060030000000000001ba18f00610300000000000059d98f006203000000000000981190006303000000000000d64990006403000000000000f56590006503000000000000158290006603000000000000758b9000670300000000000053ba9000680300000000000092f290006903000000000000d22a91006a03000000000000106391006b03000000000000489b91006c03000000000000a2a491006d030000000000001bd391006e03000000000000530992006f03000000000000d32e9200700300000000000090419200710300000000000074799200720300000000000094b19200730300000000000072e092007403000000000000d2e992007503000000000000b21893007603000000000000122293007703000000000000445a93007803000000000000739293007903000000000000f3b793007a03000000000000abca93007b030000000000005ddd93007c03000000000000c40294007d03000000000000e13a94007e03000000000000217394007f0300000000000059ab9400800300000000000090e394008103000000000000c31b95008203000000000000ea53950083030000000000009866950084030000000000000b8c9500850300000000000046c49500860300000000000057fc950087030000000000008f3496008803000000000000cf6c960089030000000000000ba596008a0300000000000045dd96008b03000000000000a3e696008c03000000000000801597008d03000000000000bc4d97008e03000000000000f78597008f030000000000002ebe9700900300000000000030f6970091030000000000005a2e98009203000000000000956698009303000000000000d49e9800940300000000000014d7980095030000000000003b0f990096030000000000006c4799009703000000000000ac7f9900980300000000000078b79900990300000000000026ca99009a030000000000007cef99009b0300000000000085279a009c03000000000000be5f9a009d03000000000000fd979a009e03000000000000b9aa9a009f0300000000000022d09a00a0030000000000003dec9a00a10300000000000058089b00a20300000000000074249b00a3030000000000008b409b00a403000000000000e4499b00a50300000000000038789b00a60300000000000076819b00a703000000000000e4af9b00a803000000000000b7e79b00a903000000000000731f9c00aa03000000000000a6289c00ab030000000000002f3b9c00ac0300000000000012579c00ad030000000000005d609c00ae03000000000000cb8e9c00af0300000000000057a19c00b00300000000000086c69c00b1030000000000005afe9c00b20300000000000002369d00b303000000000000bc6d9d00b40300000000000099a59d00b5030000000000004edd9d00b603000000000000db149e00b703000000000000e0399e00b803000000000000724c9e00b9030000000000002a849e00ba03000000000000ee9f9e00bb03000000000000d1bb9e00bc030000000000007df39e00bd03000000000000f02a9f00be030000000000006a629f00bf03000000000000ff999f00c0030000000000002ed19f00c1030000000000004608a000c203000000000000893fa000c303000000000000a476a000c403000000000000dfada000c5030000000000001cb7a000c6030000000000003ce5a000c703000000000000921ca100c8030000000000008c53a100c903000000000000988aa100ca0300000000000010a6a100cb03000000000000a0c1a100cc03000000000000e5d3a100cd0300000000000072f8a100ce030000000000007c2fa200cf030000000000003766a200d003000000000000389da200d10300000000000056a6a200d203000000000000a9b8a200d303000000000000cac1a200d4030000000000001ad4a200d503000000000000200ba300d6030000000000002714a300d703000000000000bc41a300d8030000000000006778a300d9030000000000000aafa300da0300000000000046dca300db0300000000000065e5a300dc03000000000000a81ba400dd03000000000000d72da400de030000000000002352a400df030000000000006288a400e003000000000000c1bea400e103000000000000f8f4a400e203000000000000212ba500e3030000000000003f61a500e403000000000000656aa500e503000000000000e497a500e60300000000000040cea500e703000000000000b204a600e803000000000000fc3aa600e9030000000000009471a600ea0300000000000037a8a600eb030000000000001adfa600ec03000000000000ea0ca700ed030000000000000e16a700ee030000000000005228a700ef030000000000007d31a700f003000000000000034da700f1030000000000002084a700f2030000000000004a8da700f303000000000000a99fa700f403000000000000f6baa700f503000000000000c1f1a700f603000000000000be28a800f703000000000000a65fa800f8030000000000003e7ba800f903000000000000c296a800fa03000000000000c3cda800fb03000000000000d504a900fc03000000000000f83ba900fd030000000000005f73a900fe03000000000000ceaaa900ff030000000000000bb4a900000400000000000005e2a90001040000000000005e19aa000204000000000000c12baa0003040000000000008e50aa000404000000000000fd62aa0005040000000000008175aa000604000000000000fa87aa0007040000000000002f91aa0008040000000000005dbfaa000904000000000000a3c8aa000a04000000000000e5f6aa000b04000000000000e41bab000c040000000000005b2eab000d04000000000000e765ab000e040000000000004c9dab000f0400000000000085a6ab001004000000000000b8d4ab001104000000000000fdddab0012040000000000003b0cac001304000000000000d043ac001404000000000000827bac001504000000000000b8a0ac0016040000000000005bb3ac00170400000000000029ebac0018040000000000006af4ac0019040000000000000e07ad001a04000000000000f422ad001b04000000000000432cad001c040000000000009935ad001d04000000000000ee3ead001e04000000000000d55aad001f04000000000000bd76ad002004000000000000a592ad00210400000000000076caad002204000000000000f6dcad002304000000000000e001ae0024040000000000004f39ae0025040000000000001371ae0026040000000000005f7aae002704000000000000fc8cae002804000000000000cda8ae0029040000000000005ebbae002a0400000000000081e0ae002b040000000000004f18af002c040000000000001e50af002d04000000000000e687af002e04000000000000a0bfaf002f040000000000005ff7af003004000000000000042fb0003104000000000000da66b00032040000000000009a9eb000330400000000000063d6b0003404000000000000300eb1003504000000000000da45b10036040000000000009a7db100370400000000000050b5b100380400000000000029edb1003904000000000000971bb2003a04000000000000e024b2003b04000000000000995cb2003c040000000000006694b2003d0400000000000048b0b2003e040000000000002eccb2003f0400000000000075d5b200400400000000000008e8b2004104000000000000e703b3004204000000000000ce1fb3004304000000000000b63bb30044040000000000000d45b30045040000000000009f57b30046040000000000007573b3004704000000000000c67cb30048040000000000003aabb3004904000000000000e4e2b3004a04000000000000651ab4004b04000000000000f951b4004c040000000000009389b4004d0400000000000025c1b4004e04000000000000f6f8b4004f04000000000000241eb5005004000000000000b130b50051040000000000007068b500520400000000000040a0b5005304000000000000ecd7b50054040000000000000510b60055040000000000003e48b60056040000000000007a80b6005704000000000000b7b8b6005804000000000000f3f0b60059040000000000002f29b7005a04000000000000ae4eb7005b040000000000006861b7005c04000000000000a599b7005d04000000000000ded1b7005e040000000000005cf7b7005f04000000000000160ab80060040000000000005042b8006104000000000000964bb8006204000000000000687ab8006304000000000000a6b2b800640400000000000066c5b8006504000000000000e5eab80066040000000000000423b90067040000000000003f5bb90068040000000000005d77b90069040000000000007b93b9006a04000000000000b7cbb9006b04000000000000ef03ba006c04000000000000133cba006d040000000000003358ba006e040000000000005174ba006f0400000000000042acba0070040000000000006ce4ba007104000000000000a21cbb007204000000000000e054bb007304000000000000405ebb0074040000000000001b8dbb0075040000000000002ec5bb0076040000000000006dfdbb007704000000000000a435bc007804000000000000d06dbc0079040000000000000ca6bc007a040000000000004adebc007b040000000000008716bd007c04000000000000c34ebd007d04000000000000fc86bd007e040000000000003bbfbd007f040000000000007af7bd008004000000000000d500be008104000000000000b32fbe008204000000000000ea67be00830400000000000027a0be00840400000000000065d8be008504000000000000a410bf008604000000000000dd48bf0087040000000000003b52bf0088040000000000001881bf0089040000000000008fb8bf008a04000000000000cbc1bf008b04000000000000f8efbf008c040000000000007602c0008d040000000000008327c0008e04000000000000075fc0008f040000000000005d96c000900400000000000009cec00091040000000000003b06c10092040000000000002d3ec10093040000000000006476c10094040000000000007aaec1009504000000000000b9e6c1009604000000000000ef1ec20097040000000000002c57c2009804000000000000698fc20099040000000000008cc7c2009a040000000000009effc2009b04000000000000da37c3009c04000000000000ee6fc3009d0400000000000029a8c3009e0400000000000067e0c3009f04000000000000240fc400a0040000000000008218c400a104000000000000b150c400a204000000000000c088c400a304000000000000d2c0c400a404000000000000f6f8c400a5040000000000001231c500a604000000000000d143c500a7040000000000004d69c500a80400000000000089a1c500a904000000000000c4d9c500aa040000000000000112c600ab040000000000005c1bc600ac040000000000003a4ac600ad040000000000007482c600ae04000000000000abbac600af04000000000000e4f2c600b0040000000000001d2bc700b1040000000000002e47c700b2040000000000004863c700b304000000000000687fc700b404000000000000829bc700b5040000000000009bd3c700b604000000000000d80bc800b7040000000000001144c800b804000000000000704dc800b904000000000000d056c800ba040000000000004e7cc800bb0400000000000080b4c800bc04000000000000b1ecc800bd040000000000009808c900be040000000000008d24c900bf04000000000000c75cc900c004000000000000df94c900c104000000000000feb0c900c2040000000000001dcdc900c3040000000000004605ca00c4040000000000006e3dca00c5040000000000009e75ca00c604000000000000029bca00c704000000000000aeadca00c8040000000000008adcca00c904000000000000eae5ca00ca04000000000000251ecb00cb04000000000000fa55cb00cc04000000000000778ccb00cd04000000000000eec3cb00ce0400000000000005fccb00cf040000000000004134cc00d004000000000000716ccc00d10400000000000096a4cc00d204000000000000d3dccc00d30400000000000086efcc00d4040000000000000215cd00d504000000000000ac27cd00d604000000000000264dcd00d7040000000000008656cd00d8040000000000006385cd00d9040000000000003bb4cd00da0400000000000099bdcd00db04000000000000d8f5cd00dc04000000000000172ece00dd040000000000005366ce00de04000000000000909ece00df04000000000000b7d6ce00e00400000000000068e9ce00e104000000000000cc0ecf00e2040000000000000547cf00e304000000000000427fcf00e40400000000000079b7cf00e504000000000000b8efcf00e604000000000000f427d000e7040000000000000b60d000e8040000000000004698d000e90400000000000083d0d000ea04000000000000c008d100eb04000000000000fa40d100ec040000000000003679d100ed0400000000000073b1d100ee0400000000000087cdd100ef04000000000000a6e9d100f004000000000000e521d200f1040000000000001e5ad200f2040000000000005692d200f30400000000000092cad200f40400000000000052ddd200f504000000000000ce02d300f604000000000000e13ad300f7040000000000003444d300f804000000000000dc56d300f904000000000000ef72d300fa040000000000004d7cd300fb0400000000000024abd300fc04000000000000a1d0d300fd040000000000005be3d300fe04000000000000901bd400ff04000000000000ce53d40000050000000000000a8cd40001050000000000003ac4d40002050000000000004ae0d400030500000000000069fcd4000405000000000000a134d50005050000000000006047d5000605000000000000de6cd50007050000000000001ba5d500080500000000000058ddd50009050000000000009415d6000a05000000000000d24dd6000b05000000000000f085d6000c050000000000001ebed6000d05000000000000fbecd6000e050000000000005bf6d6000f050000000000008b2ed7001005000000000000c566d7001105000000000000029fd700120500000000000036d7d70013050000000000006f0fd80014050000000000009f47d8001505000000000000c97fd8001605000000000000e4b7d80017050000000000001ff0d80018050000000000005928d90019050000000000009560d9001a050000000000005473d9001b05000000000000718fd9001c05000000000000d198d9001d0500000000000031a2d9001e050000000000000fd1d9001f05000000000000cfe3d90020050000000000004f09da0021050000000000008941da002205000000000000b979da002305000000000000edb1da00240500000000000047bbda00250500000000000054d7da00260500000000000007eada00270500000000000067f3da0028050000000000003a22db0029050000000000005e5adb002a050000000000007892db002b05000000000000b0cadb002c05000000000000e702dc002d05000000000000183bdc002e050000000000007644dc002f050000000000002773dc003005000000000000dd85dc0031050000000000004dabdc00320500000000000086e3dc003305000000000000bb1bdd003405000000000000944add003505000000000000f453dd003605000000000000ad66dd003705000000000000298cdd00380500000000000060c4dd0039050000000000009cfcdd003a05000000000000fa05de003b05000000000000d734de003c05000000000000b56cde003d0500000000000045a4de003e05000000000000a1d2de003f05000000000000e4dbde0040050000000000002fe5de0041050000000000003c05df004205000000000000d81adf004305000000000000d636df0044050000000000002840df004505000000000000d252df004605000000000000cf6edf004705000000000000a9a6df004805000000000000eeafdf00490500000000000047b9df004a05000000000000b1dedf004b050000000000000de8df004c050000000000006e0de0004d05000000000000cb16e0004e05000000000000d84ee0004f050000000000007886e0005005000000000000b3bee0005105000000000000c3f6e0005205000000000000fe2ee10053050000000000002c67e1005405000000000000e679e1005505000000000000a68ce1005605000000000000629fe10057050000000000009bd7e10058050000000000005806e2005905000000000000b10fe2005a05000000000000e647e2005b050000000000001880e2005c050000000000007689e2005d050000000000004cb8e2005e050000000000007ef0e2005f05000000000000b228e3006005000000000000e760e30061050000000000002499e300620500000000000060d1e30063050000000000009c09e4006405000000000000d441e4006505000000000000334be40066050000000000000a7ae4006705000000000000e0a8e400680500000000000040b2e40069050000000000006feae4006a05000000000000a022e5006b05000000000000de5ae5006c050000000000001a93e5006d0500000000000055cbe5006e050000000000000bdee5006f050000000000008203e6007005000000000000db0ce6007105000000000000b53be6007205000000000000f073e60073050000000000004e7de60074050000000000002cace60075050000000000008cb5e60076050000000000006be4e6007705000000000000a51ce7007805000000000000dc54e7007905000000000000168de7007a050000000000004ac5e7007b0500000000000057fde7007c050000000000009335e8007d05000000000000d06de8007e050000000000002e77e8007f0500000000000004a6e80080050000000000003fdee80081050000000000007b16e9008205000000000000b74ee9008305000000000000e886e900840500000000000015bfe900850500000000000046f7e9008605000000000000602fea0087050000000000000442ea0088050000000000005a4bea0089050000000000006a67ea008a05000000000000889fea008b05000000000000daa8ea008c0500000000000079d7ea008d050000000000009f0feb008e050000000000005c22eb008f050000000000001c35eb009005000000000000d847eb0091050000000000000e80eb0092050000000000003eb8eb00930500000000000076f0eb009405000000000000ad28ec009505000000000000e660ec0096050000000000002399ec00970500000000000060d1ec0098050000000000009e09ed0099050000000000005e1ced009a05000000000000da41ed009b050000000000009654ed009c050000000000005567ed009d05000000000000127aed009e050000000000004ab2ed009f0500000000000082eaed00a005000000000000e1f3ed00a105000000000000bd22ee00a205000000000000fa5aee00a3050000000000003493ee00a405000000000000929cee00a50500000000000070cbee00a605000000000000ac03ef00a705000000000000eb3bef00a805000000000000fb73ef00a905000000000000feabef00aa05000000000000bebeef00ab0500000000000038e4ef00ac050000000000004e1cf000ad050000000000008854f000ae05000000000000958cf000af05000000000000c5c4f000b005000000000000fffcf000b1050000000000002e35f100b205000000000000de47f100b305000000000000466df100b4050000000000005da5f100b50500000000000094ddf100b605000000000000c115f200b705000000000000fa4df200b8050000000000002d86f200b90500000000000067bef200ba05000000000000a0f6f200bb05000000000000b52ef300bc050000000000003254f300bd05000000000000ef66f300be05000000000000239ff300bf0500000000000032d7f300c005000000000000dde9f300c1050000000000001e0ff400c2050000000000004f47f400c3050000000000008d7ff400c4050000000000006bb7f400c5050000000000009beff400c605000000000000c927f500c705000000000000ff5ff500c8050000000000003198f500c90500000000000063d0f500ca050000000000008908f600cb05000000000000c240f600cc050000000000001d66f600cd05000000000000ca78f600ce05000000000000fbb0f600cf0500000000000031e9f600d0050000000000006021f700d1050000000000009e59f700d205000000000000d891f700d3050000000000000acaf700d4050000000000004402f800d5050000000000007b3af800d605000000000000fa5ff800d705000000000000b672f800d805000000000000ebaaf800d90500000000000048b4f800da0500000000000024e3f800db05000000000000601bf900dc050000000000009753f900dd05000000000000ac8bf900de05000000000000e3c3f900df050000000000001cfcf900e0050000000000005934fa00e105000000000000936cfa00e205000000000000a7a4fa00e305000000000000dfdcfa00e4050000000000001a15fb00e5050000000000004d4dfb00e605000000000000a656fb00e7050000000000007b85fb00e805000000000000a2bdfb00e905000000000000dff5fb00ea050000000000005f1bfc00eb050000000000001e2efc00ec050000000000005266fc00ed050000000000000c79fc00ee05000000000000cc8bfc00ef050000000000002995fc00f005000000000000899efc00f105000000000000c1d6fc00f2050000000000007ee9fc00f3050000000000003dfcfc00f405000000000000f00efd00f5050000000000004c18fd00f6050000000000001a47fd00f7050000000000004a7ffd00f80500000000000086b7fd00f905000000000000beeffd00fa050000000000001ef9fd00fb05000000000000ee27fe00fc050000000000000944fe00fd050000000000002560fe00fe05000000000000307cfe00ff050000000000002798fe000006000000000000e2aafe00010600000000000042b4fe0002060000000000005dd0fe0003060000000000009a08ff000406000000000000ca40ff000506000000000000244aff000606000000000000f278ff0007060000000000002db1ff00080600000000000063e9ff000906000000000000712100010a06000000000000313400010b060000000000004c5000010c06000000000000ac5900010d06000000000000b49100010e06000000000000e3c900010f06000000000000f60101011006000000000000103a010111060000000000003056010112060000000000004c720101130600000000000084aa01011406000000000000c2e201011506000000000000fe1a02011606000000000000235302011706000000000000618b020118060000000000009dc3020119060000000000005ad602011a06000000000000badf02011b06000000000000d7fb02011c06000000000000370503011d06000000000000f71703011e06000000000000133403011f06000000000000516c03012006000000000000107f030121060000000000008da403012206000000000000cadc03012306000000000000f81404012406000000000000324d0401250600000000000070850401260600000000000080bd040127060000000000008bf504012806000000000000842d05012906000000000000d73605012a060000000000008b6505012b06000000000000c19d05012c06000000000000f9d505012d060000000000002e0e06012e06000000000000664606012f060000000000009d7e06013006000000000000d7b60601310600000000000011ef06013206000000000000442707013306000000000000725f07013406000000000000af9707013506000000000000e7cf070136060000000000001f0808013706000000000000372408013806000000000000544008013906000000000000917808013a06000000000000c8b008013b0600000000000001e908013c060000000000000f2109013d06000000000000085909013e06000000000000a99009013f06000000000000b5c809014006000000000000c5000a014106000000000000d2380a01420600000000000006710a014306000000000000f5a80a0144060000000000002be10a01450600000000000012190b01460600000000000048510b01470600000000000086890b014806000000000000e5920b014906000000000000c4c10b014a0600000000000000fa0b014b060000000000001d320c014c060000000000000b6a0c014d06000000000000c5980c014e060000000000001aa20c014f06000000000000d7d00c0150060000000000002dda0c01510600000000000069120d015206000000000000a44a0d015306000000000000df820d0154060000000000001dbb0d01550600000000000055f30d015606000000000000852b0e01570600000000000083630e015806000000000000c39b0e0159060000000000001ba50e015a060000000000007bae0e015b06000000000000f7d30e015c06000000000000afe60e015d06000000000000290c0f015e0600000000000065440f015f06000000000000db690f016006000000000000977c0f016106000000000000d2b40f016206000000000000ecec0f016306000000000000062510016406000000000000ea5c10016506000000000000f49410016606000000000000ffcc100167060000000000005ed610016806000000000000d6fb10016906000000000000340511016a06000000000000613d11016b060000000000008b7511016c06000000000000919111016d06000000000000abad11016e06000000000000e0e511016f060000000000001d1e120170060000000000005556120171060000000000006c8e120172060000000000008aaa12017306000000000000a3c612017406000000000000bdfe12017506000000000000f83613017606000000000000126f130177060000000000006c9413017806000000000000c99d1301790600000000000029a713017a060000000000005bdf13017b06000000000000b8e813017c0600000000000016f213017d060000000000008d1714017e06000000000000ec2014017f06000000000000a43314018006000000000000bc4f14018106000000000000d58714018206000000000000919a1401830600000000000005c0140184060000000000005fc914018506000000000000f8f714018606000000000000a10a15018706000000000000fa1315018806000000000000561d15018906000000000000fa2f15018a06000000000000513915018b06000000000000aa4215018c06000000000000106815018d060000000000002f8415018e060000000000004ba015018f060000000000002cbc15019006000000000000ccce1501910600000000000019d81501920600000000000076e115019306000000000000331016019406000000000000664816019506000000000000998016019606000000000000d5b81601970600000000000093cb16019806000000000000f3d4160199060000000000000ff116019a06000000000000cd0317019b06000000000000492917019c06000000000000a33217019d06000000000000444517019e060000000000003a6117019f06000000000000117d1701a0060000000000001c991701a10600000000000059d11701a2060000000000008c091801a306000000000000c2411801a4060000000000001e4b1801a50600000000000037671801a606000000000000f2791801a7060000000000001fb21801a806000000000000dec41801a90600000000000056ea1801aa0600000000000005fd1801ab0600000000000079221901ac06000000000000b25a1901ad06000000000000e5921901ae06000000000000f9ca1901af060000000000005df01901b00600000000000017031a01b1060000000000003a3b1a01b206000000000000e64d1a01b30600000000000044731a01b406000000000000a37c1a01b50600000000000078ab1a01b6060000000000006ee31a01b706000000000000921b1b01b806000000000000be531b01b9060000000000001d5d1b01ba06000000000000ec8b1b01bb0600000000000009c41b01bc06000000000000e5fb1b01bd06000000000000f1331c01be06000000000000ef6b1c01bf06000000000000a39a1c01c006000000000000fba31c01c106000000000000f2db1c01c206000000000000f8131d01c306000000000000df4b1d01c40600000000000075831d01c506000000000000aaa81d01c6060000000000003bbb1d01c7060000000000002fd71d01c80600000000000017f31d01c90600000000000067fc1d01ca06000000000000ad211e01cb06000000000000fb2a1e01cc0600000000000052341e01cd06000000000000da621e01ce06000000000000c87e1e01cf06000000000000b09a1e01d00600000000000089d21e01d1060000000000000fe51e01d2060000000000005fee1e01d3060000000000003b0a1f01d406000000000000f8411f01d50600000000000098541f01d606000000000000ac5d1f01d70600000000000094791f01d8060000000000006eb11f01d90600000000000038e91f01da060000000000000b212001db06000000000000e6582001dc06000000000000c8902001dd0600000000000062a32001de060000000000007ac82001df060000000000001cdb2001e0060000000000005d002101e10600000000000021382101e206000000000000f76f2101e3060000000000003d792101e406000000000000cea72101e50600000000000095df2101e6060000000000006e172201e706000000000000334f2201e80600000000000085582201e90600000000000010872201ea06000000000000eea22201eb06000000000000cbbe2201ec06000000000000a9da2201ed060000000000009ef62201ee060000000000003d092301ef06000000000000782e2301f0060000000000000c412301f1060000000000005e4a2301f20600000000000045662301f3060000000000003b822301f406000000000000299e2301f506000000000000fed52301f606000000000000990d2401f7060000000000002c202401f806000000000000173c2401f90600000000000063452401fa06000000000000fd572401fb060000000000002a7d2401fc0600000000000000b52401fd06000000000000b8ec2401fe0600000000000037242501ff06000000000000155c25010007000000000000e69325010107000000000000a6cb25010207000000000000630326010307000000000000b30c260104070000000000000916260105070000000000005b1f26010607000000000000523b260107070000000000004857260108070000000000002d732601090700000000000018ab26010a07000000000000fdc626010b07000000000000ede226010c070000000000008d1127010d07000000000000e31a27010e07000000000000cc5227010f07000000000000ac8a270110070000000000004b9d2701110700000000000090c22701120700000000000087fa27011307000000000000583228011407000000000000fe6928011507000000000000557328011607000000000000f4a128011707000000000000ced9280118070000000000007d1129011907000000000000414929011a070000000000001a8129011b07000000000000deb829011c07000000000000bff029011d07000000000000a8282a011e070000000000008b602a011f07000000000000dc692a0120070000000000002d732a0121070000000000007a7c2a012207000000000000198f2a01230700000000000069982a01240700000000000003ab2a0125070000000000004ab42a0126070000000000009ebd2a01270700000000000041d02a012807000000000000e7e22a01290700000000000089f52a012a0700000000000023082b012b07000000000000cb1a2b012c0700000000000018242b012d070000000000006b2d2b012e07000000000000ba362b012f070000000000000e402b013007000000000000af522b013107000000000000035c2b0132070000000000004c652b0133070000000000009b6e2b013407000000000000e4772b013507000000000000abaf2b013607000000000000f8b82b01370700000000000052c22b013807000000000000f0d42b0139070000000000008de72b013a0700000000000081032c013b070000000000005e1f2c013c070000000000004a3b2c013d0700000000000037572c013e070000000000000a8f2c013f070000000000005e982c014007000000000000eeaa2c0141070000000000007fbd2c014207000000000000d2c62c014307000000000000b6fe2c0144070000000000008f362d014507000000000000426e2d014607000000000000d9a52d014707000000000000a0dd2d0148070000000000003df02d0149070000000000004f152e014a07000000000000971e2e014b07000000000000e2272e014c0700000000000035312e014d07000000000000cb432e014e07000000000000174d2e014f07000000000000a57b2e015007000000000000f8842e015107000000000000e0bc2e015207000000000000bdf42e0153070000000000009d2c2f015407000000000000e9352f015507000000000000353f2f015607000000000000cf512f0157070000000000006e642f0158070000000000001b772f015907000000000000659c2f015a070000000000005bd42f015b0700000000000001e72f015c07000000000000470c30015d07000000000000464430015e07000000000000904d30015f07000000000000e456300160070000000000003b6030016107000000000000327c30016207000000000000d68e300163070000000000002d983001640700000000000032b430016507000000000000faeb30016607000000000000f12331016707000000000000c65b310168070000000000001c6531016907000000000000bb9331016a0700000000000002b931016b07000000000000a4cb31016c07000000000000870332016d07000000000000721f32016e070000000000006b3b32016f07000000000000675732017007000000000000647332017107000000000000ab7c3201720700000000000042ab32017307000000000000eebd320174070000000000003be33201750700000000000088ec32017607000000000000281b330177070000000000003d5333017807000000000000df6533017907000000000000d28133017a07000000000000248b33017b0700000000000012c333017c07000000000000b4f133017d0700000000000007fb33017e07000000000000fb1634017f07000000000000e93234018007000000000000914534018107000000000000c26a34018207000000000000117434018307000000000000b98634018407000000000000ada23401850700000000000092da340186070000000000008d1235018707000000000000864a350188070000000000008b823501890700000000000028b135018a070000000000007dba35018b070000000000001dcd35018c0700000000000065f235018d07000000000000d60436018e07000000000000952036018f07000000000000d52936019007000000000000e46136019107000000000000d499360192070000000000007fac36019307000000000000d5d13601940700000000000079e436019507000000000000d7ed36019607000000000000e80937019707000000000000f74137019807000000000000386737019907000000000000e37937019a07000000000000e79537019b07000000000000ecb137019c07000000000000a1c437019d0700000000000001ea37019e07000000000000100638019f070000000000006a0f3801a00700000000000019223801a107000000000000752b3801a207000000000000f1503801a307000000000000515a3801a4070000000000008a923801a507000000000000e79b3801a607000000000000afca3801a70700000000000099023901a807000000000000f50b3901a907000000000000a81e3901aa07000000000000b23a3901ab07000000000000c4723901ac0700000000000068853901ad0700000000000050a13901ae070000000000009daa3901af070000000000004bbd3901b007000000000000f6cf3901b10700000000000049d93901b2070000000000009de23901b30700000000000040f53901b4070000000000009cfe3901b5070000000000009d1a3a01b607000000000000d5523a01b707000000000000e78a3a01b807000000000000f6c23a01b907000000000000d1fa3a01ba07000000000000dc323b01bb07000000000000da6a3b01bc0700000000000032743b01bd07000000000000e6863b01be07000000000000e4a23b01bf070000000000002cac3b01c00700000000000082b53b01c1070000000000000fc83b01c2070000000000009eda3b01c307000000000000f4e33b01c40700000000000043ed3b01c507000000000000e9ff3b01c6070000000000008e123c01c707000000000000814a3c01c807000000000000285d3c01c9070000000000007b823c01ca0700000000000070ba3c01cb0700000000000047f23c01cc07000000000000fb293d01cd0700000000000044333d01ce07000000000000af613d01cf07000000000000ff6a3d01d00700000000000052743d01d10700000000000093993d01d2070000000000002cac3d01d3070000000000001ac83d01d4070000000000006bd13d01d507000000000000b2f63d01d60700000000000054093e01d7070000000000003e413e01d80700000000000031793e01d9070000000000005c9e3e01da07000000000000eeb03e01db07000000000000c3cc3e01dc0700000000000008d63e01dd0700000000000048df3e01de070000000000008be83e01df07000000000000e0f13e01e00700000000000076043f01e1070000000000000a173f01e20700000000000054203f01e307000000000000a7293f01e4070000000000004c3c3f01e50700000000000043583f01e607000000000000f46a3f01e70700000000000058903f01e80700000000000064c83f01e9070000000000007c004001ea0700000000000082384001eb07000000000000df414001ec070000000000009a704001ed07000000000000ed794001ee0700000000000077a84001ef07000000000000ccb14001f00700000000000087e04001f10700000000000078184101f20700000000000078504101f307000000000000437f4101f40700000000000099884101f507000000000000ea914101f6070000000000003b9b4101f7070000000000009dc04101f80700000000000055f84101f9070000000000003d304201fa070000000000001b684201fb0700000000000013a04201fc070000000000000cd84201fd070000000000001f104301fe070000000000002c484301ff07000000000000e35a430100080000000000003c6443010108000000000000e97643010208000000000000408043010308000000000000ed9243010408000000000000ebae4301050800000000000043b843010608000000000000e2e64301070800000000000034f0430108080000000000001b2844010908000000000000216044010a08000000000000b87244010b080000000000000b7c44010c080000000000000b9844010d0800000000000010d044010e080000000000000f0845010f08000000000000014045011008000000000000f37745011108000000000000478145011208000000000000caaf45011308000000000000a1e7450114080000000000008f1f46011508000000000000845746011608000000000000d360460117080000000000007573460118080000000000005f8f4601190800000000000073c746011a0800000000000086ff46011b08000000000000963747011c08000000000000a16f47011d08000000000000f97847011e08000000000000a2a747011f0800000000000098df47012008000000000000e2e8470121080000000000000b1748012208000000000000472048012308000000000000882948012408000000000000ba32480125080000000000002745480126080000000000006b4e48012708000000000000af5748012808000000000000ec85480129080000000000003e8f48012a08000000000000eca148012b08000000000000f4bd48012c0800000000000000da48012d0800000000000005f648012e08000000000000f82d49012f08000000000000543749013008000000000000fb4949013108000000000000006649013208000000000000fa9d4901330800000000000005d649013408000000000000e70d4a013508000000000000c4454a013608000000000000ad7d4a013708000000000000f3864a01380800000000000042904a01390800000000000084b54a013a080000000000006eed4a013b08000000000000c4f64a013c0800000000000046254b013d08000000000000205d4b013e08000000000000e7944b013f08000000000000dfcc4b0140080000000000003ad64b014108000000000000f1044c014208000000000000863c4c01430800000000000074744c014408000000000000d17d4c0145080000000000007fac4c01460800000000000022bf4c01470800000000000078e44c01480800000000000028f74c0149080000000000008c1c4d014a0800000000000087544d014b08000000000000da5d4d014c080000000000008b704d014d08000000000000878c4d014e08000000000000309f4d014f0800000000000063c44d0150080000000000006ffc4d01510800000000000070344e015208000000000000476c4e01530800000000000097754e01540800000000000025a44e015508000000000000cfb64e0156080000000000001ddc4e01570800000000000070e54e0158080000000000001d144f015908000000000000284c4f015a0800000000000043844f015b080000000000005ebc4f015c080000000000006ff44f015d08000000000000a32c50015e08000000000000dc6450015f08000000000000f19c5001600800000000000005d550016108000000000000f70c51016208000000000000014551016308000000000000a35751016408000000000000d87c51016508000000000000a7b451016608000000000000c8ec51016708000000000000ef24520168080000000000003f4a52016908000000000000d15c52016a08000000000000c39452016b0800000000000029ba52016c08000000000000d7cc52016d0800000000000035f252016e08000000000000e80453016f080000000000009e3353017008000000000000f03c530171080000000000005c62530172080000000000000c755301" }, "name": "Polkadot", "properties": { From 193452e95f062d64fe30256f5e65d23a3bde5e76 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Tue, 27 Aug 2024 13:50:21 +0200 Subject: [PATCH 114/137] fix: dependabot dir -> dirs (#1731) --- .github/dependabot.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 41c14f5145..ba29735f5c 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,7 +1,8 @@ version: 2 updates: - package-ecosystem: "cargo" - directory: "**/*" + directories: + - "**/*" schedule: interval: weekly ignore: From 4bc27d49771e631fb3b5dd4ad936f125b1a89a33 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Tue, 27 Aug 2024 15:18:06 +0200 Subject: [PATCH 115/137] refactor: replace `reconnecting-jsonrpsee-ws-client` with `subxt-reconnecting-rpc-client` (#1705) * feat: add native subxt rpc reconn client * add jsonrpsee dep to reconnecting-client * Update subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs * fix grumbles * add simple wasm test for reconnecting client * fix test build * cargo fmt * remove reconnect apis * Update testing/wasm-rpc-tests/tests/wasm.rs * Update subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs * Update subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs --- .github/workflows/rust.yml | 4 +- Cargo.lock | 70 +- Cargo.toml | 1 + subxt/Cargo.toml | 24 +- .../examples/setup_reconnecting_rpc_client.rs | 22 +- .../backend/rpc/reconnecting_rpc_client.rs | 270 -------- .../rpc/reconnecting_rpc_client/mod.rs | 640 ++++++++++++++++++ .../rpc/reconnecting_rpc_client/platform.rs | 83 +++ .../rpc/reconnecting_rpc_client/tests.rs | 274 ++++++++ .../rpc/reconnecting_rpc_client/utils.rs | 14 + subxt/src/macros.rs | 2 +- testing/wasm-rpc-tests/Cargo.lock | 27 +- testing/wasm-rpc-tests/Cargo.toml | 2 +- testing/wasm-rpc-tests/tests/wasm.rs | 12 +- 14 files changed, 1102 insertions(+), 343 deletions(-) delete mode 100644 subxt/src/backend/rpc/reconnecting_rpc_client.rs create mode 100644 subxt/src/backend/rpc/reconnecting_rpc_client/mod.rs create mode 100644 subxt/src/backend/rpc/reconnecting_rpc_client/platform.rs create mode 100644 subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs create mode 100644 subxt/src/backend/rpc/reconnecting_rpc_client/utils.rs diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index f049cf6d91..e1819ecf19 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -261,7 +261,7 @@ jobs: uses: actions-rs/cargo@v1.0.3 with: command: test - args: --doc + args: --doc --features unstable-reconnecting-rpc-client - if: "failure()" uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 @@ -295,7 +295,7 @@ jobs: uses: actions-rs/cargo@v1.0.3 with: command: nextest - args: run --workspace + args: run --workspace --features unstable-reconnecting-rpc-client - if: "failure()" uses: "andymckay/cancel-action@a955d435292c0d409d104b57d8e78435a93a6ef1" # v0.5 diff --git a/Cargo.lock b/Cargo.lock index e6aeadaba8..81000c6053 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2179,6 +2179,12 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + [[package]] name = "hyper" version = "1.3.1" @@ -2192,6 +2198,7 @@ dependencies = [ "http 1.1.0", "http-body", "httparse", + "httpdate", "itoa", "pin-project-lite", "smallvec", @@ -2475,9 +2482,11 @@ dependencies = [ "jsonrpsee-client-transport", "jsonrpsee-core", "jsonrpsee-http-client", + "jsonrpsee-server", "jsonrpsee-types", "jsonrpsee-wasm-client", "jsonrpsee-ws-client", + "tokio", ] [[package]] @@ -2521,7 +2530,9 @@ dependencies = [ "http-body", "http-body-util", "jsonrpsee-types", + "parking_lot", "pin-project", + "rand", "rustc-hash", "serde", "serde_json", @@ -2557,6 +2568,34 @@ dependencies = [ "url", ] +[[package]] +name = "jsonrpsee-server" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "654afab2e92e5d88ebd8a39d6074483f3f2bfdf91c5ac57fe285e7127cdd4f51" +dependencies = [ + "anyhow", + "futures-util", + "http 1.1.0", + "http-body", + "http-body-util", + "hyper", + "hyper-util", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "route-recognizer", + "serde", + "serde_json", + "soketto 0.8.0", + "thiserror", + "tokio", + "tokio-stream", + "tokio-util", + "tower", + "tracing", +] + [[package]] name = "jsonrpsee-types" version = "0.23.2" @@ -3494,23 +3533,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "reconnecting-jsonrpsee-ws-client" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06fa4f17e09edfc3131636082faaec633c7baa269396b4004040bc6c52f49f65" -dependencies = [ - "cfg_aliases", - "finito", - "futures", - "jsonrpsee", - "serde_json", - "thiserror", - "tokio", - "tracing", - "wasm-bindgen-futures", -] - [[package]] name = "redox_syscall" version = "0.5.1" @@ -3618,6 +3640,12 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "route-recognizer" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afab94fb28594581f62d981211a9a4d53cc8130bbcbbb89a0440d9b8e81a7746" + [[package]] name = "rustc-demangle" version = "0.1.23" @@ -4418,6 +4446,7 @@ dependencies = [ "base64 0.22.1", "bytes", "futures", + "http 1.1.0", "httparse", "log", "rand", @@ -4885,16 +4914,18 @@ dependencies = [ "bitvec", "derive-where", "either", + "finito", "frame-metadata 16.0.0", "futures", "getrandom", "hex", + "http-body", + "hyper", "impl-serde", "instant", "jsonrpsee", "parity-scale-codec", "primitive-types", - "reconnecting-jsonrpsee-ws-client", "scale-bits", "scale-decode", "scale-encode", @@ -4914,9 +4945,11 @@ dependencies = [ "thiserror", "tokio", "tokio-util", + "tower", "tracing", "tracing-subscriber 0.3.18", "url", + "wasm-bindgen-futures", ] [[package]] @@ -5281,6 +5314,7 @@ dependencies = [ "futures-core", "pin-project-lite", "tokio", + "tokio-util", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 77aa2856f2..40dc342bf5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -77,6 +77,7 @@ console_error_panic_hook = "0.1.7" darling = "0.20.10" derive-where = "1.2.7" either = { version = "1.13.0", default-features = false } +finito = { version = "0.1.0", default-features = false } frame-metadata = { version = "16.0.0", default-features = false } futures = { version = "0.3.30", default-features = false, features = ["std"] } getrandom = { version = "0.2", default-features = false } diff --git a/subxt/Cargo.toml b/subxt/Cargo.toml index 24f84b23f6..0ccffb7d7b 100644 --- a/subxt/Cargo.toml +++ b/subxt/Cargo.toml @@ -27,9 +27,10 @@ default = ["jsonrpsee", "native"] native = [ "jsonrpsee?/async-client", "jsonrpsee?/client-ws-transport-tls", + "jsonrpsee?/ws-client", "subxt-lightclient?/native", "tokio-util", - "reconnecting-jsonrpsee-ws-client?/native", + "tokio?/sync", ] # Enable this for web/wasm builds. @@ -37,15 +38,17 @@ native = [ web = [ "jsonrpsee?/async-wasm-client", "jsonrpsee?/client-web-transport", + "jsonrpsee?/wasm-client", "getrandom/js", "subxt-lightclient?/web", "subxt-macro/web", "instant/wasm-bindgen", - "reconnecting-jsonrpsee-ws-client?/web", + "tokio?/sync", + "finito?/wasm-bindgen", ] # Enable this to use the reconnecting rpc client -unstable-reconnecting-rpc-client = ["dep:reconnecting-jsonrpsee-ws-client"] +unstable-reconnecting-rpc-client = ["dep:finito", "dep:tokio", "jsonrpsee", "wasm-bindgen-futures"] # Enable this to use jsonrpsee (allowing for example `OnlineClient::from_url`). jsonrpsee = [ @@ -100,9 +103,6 @@ subxt-core = { workspace = true, features = ["std"] } subxt-metadata = { workspace = true, features = ["std"] } subxt-lightclient = { workspace = true, optional = true, default-features = false } -# Reconnecting jsonrpc ws client -reconnecting-jsonrpsee-ws-client = { version = "0.4.3", optional = true, default-features = false } - # For parsing urls to disallow insecure schemes url = { workspace = true } @@ -112,6 +112,13 @@ getrandom = { workspace = true, optional = true } # Included if "native" feature is enabled tokio-util = { workspace = true, features = ["compat"], optional = true } +# Included if the reconnecting rpc client feature is enabled +# Only the `tokio/sync` is used in the reconnecting rpc client +# and that compiles both for native and web. +tokio = { workspace = true, optional = true } +finito = { workspace = true, optional = true } +wasm-bindgen-futures = { workspace = true, optional = true } + [dev-dependencies] bitvec = { workspace = true } codec = { workspace = true, features = ["derive", "bit-vec"] } @@ -127,6 +134,11 @@ subxt-signer = { path = "../signer", features = ["unstable-eth"] } # the light-client wlll emit INFO logs with # `GrandPa warp sync finished` and `Finalized block runtime ready.` tracing-subscriber = { workspace = true } +# These deps are needed to test the reconnecting rpc client +jsonrpsee = { workspace = true, features = ["server"] } +tower = "0.4" +hyper = "1" +http-body = "1" [[example]] name = "light_client_basic" diff --git a/subxt/examples/setup_reconnecting_rpc_client.rs b/subxt/examples/setup_reconnecting_rpc_client.rs index c393f2cffa..42ca1a766e 100644 --- a/subxt/examples/setup_reconnecting_rpc_client.rs +++ b/subxt/examples/setup_reconnecting_rpc_client.rs @@ -9,7 +9,7 @@ use std::time::Duration; use futures::StreamExt; -use subxt::backend::rpc::reconnecting_rpc_client::{Client, ExponentialBackoff}; +use subxt::backend::rpc::reconnecting_rpc_client::{ExponentialBackoff, RpcClient}; use subxt::{OnlineClient, PolkadotConfig}; // Generate an interface that we can use from the node's metadata. @@ -21,7 +21,7 @@ async fn main() -> Result<(), Box> { tracing_subscriber::fmt::init(); // Create a new client with with a reconnecting RPC client. - let rpc = Client::builder() + let rpc = RpcClient::builder() // Reconnect with exponential backoff // // This API is "iterator-like" and we use `take` to limit the number of retries. @@ -53,22 +53,6 @@ async fn main() -> Result<(), Box> { let api: OnlineClient = OnlineClient::from_rpc_client(rpc.clone()).await?; - // Optionally print if the RPC client reconnects. - let rpc2 = rpc.clone(); - tokio::spawn(async move { - loop { - // The connection was lost and the client is trying to reconnect. - let reconnected = rpc2.reconnect_initiated().await; - let now = std::time::Instant::now(); - // The connection was re-established. - reconnected.await; - println!( - "RPC client reconnection took `{}s`", - now.elapsed().as_secs() - ); - } - }); - // Run for at most 100 blocks and print a bunch of information about it. // // The subscription is automatically re-started when the RPC client has reconnected. @@ -96,7 +80,5 @@ async fn main() -> Result<(), Box> { println!("Block #{block_number} ({block_hash})"); } - println!("RPC client reconnected `{}` times", rpc.reconnect_count()); - Ok(()) } diff --git a/subxt/src/backend/rpc/reconnecting_rpc_client.rs b/subxt/src/backend/rpc/reconnecting_rpc_client.rs deleted file mode 100644 index bfefa461c5..0000000000 --- a/subxt/src/backend/rpc/reconnecting_rpc_client.rs +++ /dev/null @@ -1,270 +0,0 @@ -// Copyright 2019-2024 Parity Technologies (UK) Ltd. -// This file is dual-licensed as Apache-2.0 or GPL-3.0. -// see LICENSE for license details. - -use super::{RawRpcFuture, RawRpcSubscription, RpcClientT}; -use crate::error::RpcError; -use futures::{Future, FutureExt, StreamExt, TryStreamExt}; -use reconnecting_jsonrpsee_ws_client::{CallRetryPolicy, Client as InnerClient, SubscriptionId}; -use serde_json::value::RawValue; -use std::time::Duration; - -pub use reconnecting_jsonrpsee_ws_client::{ - ExponentialBackoff, FibonacciBackoff, FixedInterval, IdKind, -}; - -#[cfg(feature = "native")] -use reconnecting_jsonrpsee_ws_client::{HeaderMap, PingConfig}; - -/// Builder for [`Client`]. -#[derive(Debug, Clone)] -pub struct Builder

{ - max_request_size: u32, - max_response_size: u32, - retry_policy: P, - max_redirections: u32, - id_kind: IdKind, - max_log_len: u32, - max_concurrent_requests: u32, - request_timeout: Duration, - connection_timeout: Duration, - #[cfg(feature = "native")] - ping_config: Option, - #[cfg(feature = "native")] - headers: HeaderMap, -} - -impl Default for Builder { - fn default() -> Self { - Self { - max_request_size: 10 * 1024 * 1024, - max_response_size: 10 * 1024 * 1024, - retry_policy: ExponentialBackoff::from_millis(10).max_delay(Duration::from_secs(60)), - max_redirections: 5, - id_kind: IdKind::Number, - max_log_len: 1024, - max_concurrent_requests: 1024, - request_timeout: Duration::from_secs(60), - connection_timeout: Duration::from_secs(10), - #[cfg(feature = "native")] - ping_config: Some(PingConfig::new()), - #[cfg(feature = "native")] - headers: HeaderMap::new(), - } - } -} - -impl Builder { - /// Create a new builder. - pub fn new() -> Self { - Self::default() - } -} - -impl

Builder

-where - P: Iterator + Send + Sync + 'static + Clone, -{ - /// Configure the min response size a for websocket message. - /// - /// Default: 10MB - pub fn max_request_size(mut self, max: u32) -> Self { - self.max_request_size = max; - self - } - - /// Configure the max response size a for websocket message. - /// - /// Default: 10MB - pub fn max_response_size(mut self, max: u32) -> Self { - self.max_response_size = max; - self - } - - /// Set the max number of redirections to perform until a connection is regarded as failed. - /// - /// Default: 5 - pub fn max_redirections(mut self, redirect: u32) -> Self { - self.max_redirections = redirect; - self - } - - /// Configure how many concurrent method calls are allowed. - /// - /// Default: 1024 - pub fn max_concurrent_requests(mut self, max: u32) -> Self { - self.max_concurrent_requests = max; - self - } - - /// Configure how long until a method call is regarded as failed. - /// - /// Default: 1 minute - pub fn request_timeout(mut self, timeout: Duration) -> Self { - self.request_timeout = timeout; - self - } - - /// Set connection timeout for the WebSocket handshake - /// - /// Default: 10 seconds - pub fn connection_timeout(mut self, timeout: Duration) -> Self { - self.connection_timeout = timeout; - self - } - - /// Configure the data type of the request object ID - /// - /// Default: number - pub fn id_format(mut self, kind: IdKind) -> Self { - self.id_kind = kind; - self - } - - /// Set maximum length for logging calls and responses. - /// Logs bigger than this limit will be truncated. - /// - /// Default: 1024 - pub fn set_max_logging_length(mut self, max: u32) -> Self { - self.max_log_len = max; - self - } - - /// Configure which retry policy to use. - /// - /// Default: Exponential backoff 10ms - pub fn retry_policy + Send + Sync + 'static + Clone>( - self, - retry_policy: T, - ) -> Builder { - Builder { - max_request_size: self.max_request_size, - max_response_size: self.max_response_size, - retry_policy, - max_redirections: self.max_redirections, - max_log_len: self.max_log_len, - id_kind: self.id_kind, - max_concurrent_requests: self.max_concurrent_requests, - request_timeout: self.request_timeout, - connection_timeout: self.connection_timeout, - #[cfg(feature = "native")] - ping_config: self.ping_config, - #[cfg(feature = "native")] - headers: self.headers, - } - } - - #[cfg(feature = "native")] - #[cfg_attr(docsrs, doc(cfg(feature = "native")))] - /// Configure the WebSocket ping/pong interval. - /// - /// Default: 30 seconds. - pub fn enable_ws_ping(mut self, ping_config: PingConfig) -> Self { - self.ping_config = Some(ping_config); - self - } - - #[cfg(feature = "native")] - #[cfg_attr(docsrs, doc(cfg(feature = "native")))] - /// Disable WebSocket ping/pongs. - /// - /// Default: 30 seconds. - pub fn disable_ws_ping(mut self) -> Self { - self.ping_config = None; - self - } - - #[cfg(feature = "native")] - #[cfg_attr(docsrs, doc(cfg(native)))] - /// Configure custom headers to use in the WebSocket handshake. - pub fn set_headers(mut self, headers: HeaderMap) -> Self { - self.headers = headers; - self - } - - /// Build and connect to the target. - pub async fn build(self, url: String) -> Result { - let client = InnerClient::builder() - .retry_policy(self.retry_policy) - .build(url) - .await - .map_err(|e| RpcError::ClientError(Box::new(e)))?; - - Ok(Client(client)) - } -} - -/// Reconnecting rpc client. -#[derive(Debug, Clone)] -pub struct Client(InnerClient); - -impl Client { - /// Create a builder. - pub fn builder() -> Builder { - Builder::new() - } - - /// A future that resolves when the client has initiated a reconnection. - /// This method returns another future that resolves when the client has reconnected. - /// - /// This may be called multiple times. - pub async fn reconnect_initiated(&self) -> impl Future + '_ { - self.0.reconnect_started().await; - self.0.reconnected() - } - - /// Get how many times the client has reconnected successfully. - pub fn reconnect_count(&self) -> usize { - self.0.reconnect_count() - } -} - -impl RpcClientT for Client { - fn request_raw<'a>( - &'a self, - method: &'a str, - params: Option>, - ) -> RawRpcFuture<'a, Box> { - async { - self.0 - .request_raw_with_policy(method.to_string(), params, CallRetryPolicy::Drop) - .await - .map_err(|e| RpcError::DisconnectedWillReconnect(e.to_string())) - } - .boxed() - } - - fn subscribe_raw<'a>( - &'a self, - sub: &'a str, - params: Option>, - unsub: &'a str, - ) -> RawRpcFuture<'a, RawRpcSubscription> { - async { - let sub = self - .0 - .subscribe_raw_with_policy( - sub.to_string(), - params, - unsub.to_string(), - CallRetryPolicy::Drop, - ) - .await - .map_err(|e| RpcError::ClientError(Box::new(e)))?; - - let id = match sub.id() { - SubscriptionId::Num(n) => n.to_string(), - SubscriptionId::Str(s) => s.to_string(), - }; - let stream = sub - .map_err(|e| RpcError::DisconnectedWillReconnect(e.to_string())) - .boxed(); - - Ok(RawRpcSubscription { - stream, - id: Some(id), - }) - } - .boxed() - } -} diff --git a/subxt/src/backend/rpc/reconnecting_rpc_client/mod.rs b/subxt/src/backend/rpc/reconnecting_rpc_client/mod.rs new file mode 100644 index 0000000000..875f3f34c1 --- /dev/null +++ b/subxt/src/backend/rpc/reconnecting_rpc_client/mod.rs @@ -0,0 +1,640 @@ +// Copyright 2019-2024 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +//! # reconnecting-jsonrpsee-ws-client +//! +//! A simple reconnecting JSON-RPC WebSocket client for subxt which +//! automatically reconnects when the connection is lost but +//! it doesn't retain subscriptions and pending method calls when it reconnects. +//! +//! The logic which action to take for individual calls and subscriptions are +//! handled by the subxt backend implementations. +//! +//! # Example +//! +//! ```no_run +//! use std::time::Duration; +//! use futures::StreamExt; +//! use subxt::backend::rpc::reconnecting_rpc_client::{RpcClient, ExponentialBackoff}; +//! use subxt::{OnlineClient, PolkadotConfig}; +//! +//! #[tokio::main] +//! async fn main() { +//! let rpc = RpcClient::builder() +//! .retry_policy(ExponentialBackoff::from_millis(100).max_delay(Duration::from_secs(10))) +//! .build("ws://localhost:9944".to_string()) +//! .await +//! .unwrap(); +//! +//! let subxt_client: OnlineClient = OnlineClient::from_rpc_client(rpc.clone()).await.unwrap(); +//! let mut blocks_sub = subxt_client.blocks().subscribe_finalized().await.unwrap(); +//! +//! while let Some(block) = blocks_sub.next().await { +//! let block = match block { +//! Ok(b) => b, +//! Err(e) => { +//! if e.is_disconnected_will_reconnect() { +//! println!("The RPC connection was lost and we may have missed a few blocks"); +//! continue; +//! } else { +//! panic!("Error: {}", e); +//! } +//! } +//! }; +//! println!("Block #{} ({})", block.number(), block.hash()); +//! } +//! } +//! ``` + +mod platform; +#[cfg(test)] +mod tests; +mod utils; + +use std::{ + pin::Pin, + sync::Arc, + task::{self, Poll}, + time::Duration, +}; + +use super::{RawRpcFuture, RawRpcSubscription, RpcClientT}; +use crate::error::RpcError as SubxtRpcError; + +use finito::Retry; +use futures::{FutureExt, Stream, StreamExt, TryStreamExt}; +use jsonrpsee::core::{ + client::{ + Client as WsClient, ClientT, Subscription as RpcSubscription, SubscriptionClientT, + SubscriptionKind, + }, + traits::ToRpcParams, +}; +use platform::spawn; +use serde_json::value::RawValue; +use tokio::sync::{ + mpsc::{self, UnboundedReceiver, UnboundedSender}, + oneshot, Notify, +}; +use utils::display_close_reason; + +// re-exports +pub use finito::{ExponentialBackoff, FibonacciBackoff, FixedInterval}; +pub use jsonrpsee::core::client::IdKind; +pub use jsonrpsee::{core::client::error::Error as RpcError, rpc_params, types::SubscriptionId}; + +#[cfg(feature = "native")] +pub use jsonrpsee::ws_client::{HeaderMap, PingConfig}; + +const LOG_TARGET: &str = "subxt-reconnecting-rpc-client"; + +/// Method result. +pub type MethodResult = Result, Error>; +/// Subscription result. +pub type SubscriptionResult = Result, DisconnectedWillReconnect>; + +/// The connection was closed, reconnect initiated and the subscription was dropped. +#[derive(Debug, thiserror::Error)] +#[error("The connection was closed because of `{0:?}` and reconnect initiated")] +pub struct DisconnectedWillReconnect(String); + +/// New-type pattern which implements [`ToRpcParams`] that is required by jsonrpsee. +#[derive(Debug, Clone)] +struct RpcParams(Option>); + +impl ToRpcParams for RpcParams { + fn to_rpc_params(self) -> Result>, serde_json::Error> { + Ok(self.0) + } +} + +#[derive(Debug)] +enum Op { + Call { + method: String, + params: RpcParams, + send_back: oneshot::Sender, + }, + Subscription { + subscribe_method: String, + params: RpcParams, + unsubscribe_method: String, + send_back: oneshot::Sender>, + }, +} + +/// Error that can occur when for a RPC call or subscription. +#[derive(Debug, thiserror::Error)] +pub enum Error { + /// The client was dropped by the user. + #[error("The client was dropped")] + Dropped, + /// The connection was closed and reconnect initiated. + #[error(transparent)] + DisconnectedWillReconnect(#[from] DisconnectedWillReconnect), + /// Other rpc error. + #[error("{0}")] + RpcError(RpcError), +} + +/// Represent a single subscription. +pub struct Subscription { + id: SubscriptionId<'static>, + stream: mpsc::UnboundedReceiver, +} + +impl Subscription { + /// Returns the next notification from the stream. + /// This may return `None` if the subscription has been terminated, + /// which may happen if the channel becomes full or is dropped. + /// + /// **Note:** This has an identical signature to the [`StreamExt::next`] + /// method (and delegates to that). Import [`StreamExt`] if you'd like + /// access to other stream combinator methods. + #[allow(clippy::should_implement_trait)] + pub async fn next(&mut self) -> Option { + StreamExt::next(self).await + } + + /// Get the subscription ID. + pub fn id(&self) -> SubscriptionId<'static> { + self.id.clone() + } +} + +impl Stream for Subscription { + type Item = SubscriptionResult; + + fn poll_next( + mut self: Pin<&mut Self>, + cx: &mut task::Context<'_>, + ) -> task::Poll> { + match self.stream.poll_recv(cx) { + Poll::Ready(Some(msg)) => Poll::Ready(Some(msg)), + Poll::Ready(None) => Poll::Ready(None), + Poll::Pending => Poll::Pending, + } + } +} + +impl std::fmt::Debug for Subscription { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("Subscription") + .field("id", &self.id) + .finish() + } +} + +/// JSON-RPC client that reconnects automatically and may loose +/// subscription notifications when it reconnects. +#[derive(Clone, Debug)] +pub struct RpcClient { + tx: mpsc::UnboundedSender, +} + +/// Builder for [`Client`]. +#[derive(Clone, Debug)] +pub struct RpcClientBuilder

{ + max_request_size: u32, + max_response_size: u32, + retry_policy: P, + #[cfg(feature = "native")] + ping_config: Option, + #[cfg(feature = "native")] + // web doesn't support custom headers + // https://stackoverflow.com/a/4361358/6394734 + headers: HeaderMap, + max_redirections: u32, + id_kind: IdKind, + max_log_len: u32, + max_concurrent_requests: u32, + request_timeout: Duration, + connection_timeout: Duration, +} + +impl Default for RpcClientBuilder { + fn default() -> Self { + Self { + max_request_size: 10 * 1024 * 1024, + max_response_size: 10 * 1024 * 1024, + retry_policy: ExponentialBackoff::from_millis(10).max_delay(Duration::from_secs(60)), + #[cfg(feature = "native")] + ping_config: Some(PingConfig::new()), + #[cfg(feature = "native")] + headers: HeaderMap::new(), + max_redirections: 5, + id_kind: IdKind::Number, + max_log_len: 1024, + max_concurrent_requests: 1024, + request_timeout: Duration::from_secs(60), + connection_timeout: Duration::from_secs(10), + } + } +} + +impl RpcClientBuilder { + /// Create a new builder. + pub fn new() -> Self { + Self::default() + } +} + +impl

RpcClientBuilder

+where + P: Iterator + Send + Sync + 'static + Clone, +{ + /// Configure the min response size a for websocket message. + /// + /// Default: 10MB + pub fn max_request_size(mut self, max: u32) -> Self { + self.max_request_size = max; + self + } + + /// Configure the max response size a for websocket message. + /// + /// Default: 10MB + pub fn max_response_size(mut self, max: u32) -> Self { + self.max_response_size = max; + self + } + + /// Set the max number of redirections to perform until a connection is regarded as failed. + /// + /// Default: 5 + pub fn max_redirections(mut self, redirect: u32) -> Self { + self.max_redirections = redirect; + self + } + + /// Configure how many concurrent method calls are allowed. + /// + /// Default: 1024 + pub fn max_concurrent_requests(mut self, max: u32) -> Self { + self.max_concurrent_requests = max; + self + } + + /// Configure how long until a method call is regarded as failed. + /// + /// Default: 1 minute + pub fn request_timeout(mut self, timeout: Duration) -> Self { + self.request_timeout = timeout; + self + } + + /// Set connection timeout for the WebSocket handshake + /// + /// Default: 10 seconds + pub fn connection_timeout(mut self, timeout: Duration) -> Self { + self.connection_timeout = timeout; + self + } + + /// Configure the data type of the request object ID + /// + /// Default: number + pub fn id_format(mut self, kind: IdKind) -> Self { + self.id_kind = kind; + self + } + + /// Set maximum length for logging calls and responses. + /// Logs bigger than this limit will be truncated. + /// + /// Default: 1024 + pub fn set_max_logging_length(mut self, max: u32) -> Self { + self.max_log_len = max; + self + } + + #[cfg(feature = "native")] + #[cfg_attr(docsrs, doc(cfg(feature = "native")))] + /// Configure custom headers to use in the WebSocket handshake. + pub fn set_headers(mut self, headers: HeaderMap) -> Self { + self.headers = headers; + self + } + + /// Configure which retry policy to use when a connection is lost. + /// + /// Default: Exponential backoff 10ms + pub fn retry_policy(self, retry_policy: T) -> RpcClientBuilder { + RpcClientBuilder { + max_request_size: self.max_request_size, + max_response_size: self.max_response_size, + retry_policy, + #[cfg(feature = "native")] + ping_config: self.ping_config, + #[cfg(feature = "native")] + headers: self.headers, + max_redirections: self.max_redirections, + max_log_len: self.max_log_len, + id_kind: self.id_kind, + max_concurrent_requests: self.max_concurrent_requests, + request_timeout: self.request_timeout, + connection_timeout: self.connection_timeout, + } + } + + #[cfg(feature = "native")] + #[cfg_attr(docsrs, doc(cfg(feature = "native")))] + /// Configure the WebSocket ping/pong interval. + /// + /// Default: 30 seconds. + pub fn enable_ws_ping(mut self, ping_config: PingConfig) -> Self { + self.ping_config = Some(ping_config); + self + } + + #[cfg(feature = "native")] + #[cfg_attr(docsrs, doc(cfg(feature = "native")))] + /// Disable WebSocket ping/pongs. + /// + /// Default: 30 seconds. + pub fn disable_ws_ping(mut self) -> Self { + self.ping_config = None; + self + } + + /// Build and connect to the target. + pub async fn build(self, url: String) -> Result { + let (tx, rx) = mpsc::unbounded_channel(); + let client = Retry::new(self.retry_policy.clone(), || { + platform::ws_client(url.as_ref(), &self) + }) + .await?; + + platform::spawn(background_task(client, rx, url, self)); + + Ok(RpcClient { tx }) + } +} + +impl RpcClient { + /// Create a builder. + pub fn builder() -> RpcClientBuilder { + RpcClientBuilder::new() + } + + /// Perform a JSON-RPC method call. + pub async fn request( + &self, + method: String, + params: Option>, + ) -> Result, Error> { + let (tx, rx) = oneshot::channel(); + self.tx + .send(Op::Call { + method, + params: RpcParams(params), + send_back: tx, + }) + .map_err(|_| Error::Dropped)?; + + rx.await.map_err(|_| Error::Dropped)? + } + + /// Perform a JSON-RPC subscription. + pub async fn subscribe( + &self, + subscribe_method: String, + params: Option>, + unsubscribe_method: String, + ) -> Result { + let (tx, rx) = oneshot::channel(); + self.tx + .send(Op::Subscription { + subscribe_method, + params: RpcParams(params), + unsubscribe_method, + send_back: tx, + }) + .map_err(|_| Error::Dropped)?; + rx.await.map_err(|_| Error::Dropped)? + } +} + +impl RpcClientT for RpcClient { + fn request_raw<'a>( + &'a self, + method: &'a str, + params: Option>, + ) -> RawRpcFuture<'a, Box> { + async { + self.request(method.to_string(), params) + .await + .map_err(|e| SubxtRpcError::DisconnectedWillReconnect(e.to_string())) + } + .boxed() + } + + fn subscribe_raw<'a>( + &'a self, + sub: &'a str, + params: Option>, + unsub: &'a str, + ) -> RawRpcFuture<'a, RawRpcSubscription> { + async { + let sub = self + .subscribe(sub.to_string(), params, unsub.to_string()) + .await + .map_err(|e| SubxtRpcError::ClientError(Box::new(e)))?; + + let id = match sub.id() { + SubscriptionId::Num(n) => n.to_string(), + SubscriptionId::Str(s) => s.to_string(), + }; + let stream = sub + .map_err(|e| SubxtRpcError::DisconnectedWillReconnect(e.to_string())) + .boxed(); + + Ok(RawRpcSubscription { + stream, + id: Some(id), + }) + } + .boxed() + } +} + +async fn background_task

( + mut client: Arc, + mut rx: UnboundedReceiver, + url: String, + client_builder: RpcClientBuilder

, +) where + P: Iterator + Send + 'static + Clone, +{ + let disconnect = Arc::new(tokio::sync::Notify::new()); + + loop { + tokio::select! { + // An incoming JSON-RPC call to dispatch. + next_message = rx.recv() => { + match next_message { + None => break, + Some(op) => { + spawn(dispatch_call(client.clone(), op, disconnect.clone())); + } + }; + } + // The connection was terminated and try to reconnect. + _ = client.on_disconnect() => { + let params = ReconnectParams { + url: &url, + client_builder: &client_builder, + close_reason: client.disconnect_reason().await, + }; + + client = match reconnect(params).await { + Ok(client) => client, + Err(e) => { + tracing::debug!(target: LOG_TARGET, "Failed to reconnect: {e}; terminating the connection"); + break; + } + }; + } + } + } + + disconnect.notify_waiters(); +} + +async fn dispatch_call(client: Arc, op: Op, on_disconnect: Arc) { + match op { + Op::Call { + method, + params, + send_back, + } => { + match client.request::, _>(&method, params).await { + Ok(rp) => { + // Fails only if the request is dropped by the client. + let _ = send_back.send(Ok(rp)); + } + Err(RpcError::RestartNeeded(e)) => { + // Fails only if the request is dropped by the client. + let _ = send_back.send(Err(DisconnectedWillReconnect(e.to_string()).into())); + } + Err(e) => { + // Fails only if the request is dropped by the client. + let _ = send_back.send(Err(Error::RpcError(e))); + } + } + } + Op::Subscription { + subscribe_method, + params, + unsubscribe_method, + send_back, + } => { + match client + .subscribe::, _>( + &subscribe_method, + params.clone(), + &unsubscribe_method, + ) + .await + { + Ok(sub) => { + let (tx, rx) = mpsc::unbounded_channel(); + let sub_id = match sub.kind() { + SubscriptionKind::Subscription(id) => id.clone().into_owned(), + _ => unreachable!("No method subscriptions possible in this crate; qed"), + }; + + platform::spawn(subscription_handler( + tx.clone(), + sub, + on_disconnect.clone(), + client.clone(), + )); + + let stream = Subscription { + id: sub_id, + stream: rx, + }; + + // Fails only if the request is dropped by the client. + let _ = send_back.send(Ok(stream)); + } + Err(RpcError::RestartNeeded(e)) => { + // Fails only if the request is dropped by the client. + let _ = send_back.send(Err(DisconnectedWillReconnect(e.to_string()).into())); + } + Err(e) => { + // Fails only if the request is dropped. + let _ = send_back.send(Err(Error::RpcError(e))); + } + } + } + } +} + +/// Handler for each individual subscription. +async fn subscription_handler( + sub_tx: UnboundedSender, + mut rpc_sub: RpcSubscription>, + client_closed: Arc, + client: Arc, +) { + loop { + tokio::select! { + next_msg = rpc_sub.next() => { + let Some(notif) = next_msg else { + let close = client.disconnect_reason().await; + _ = sub_tx.send(Err(DisconnectedWillReconnect(close.to_string()))); + break; + }; + + let msg = notif.expect("RawValue is valid JSON; qed"); + + // Fails only if subscription was closed by the user. + if sub_tx.send(Ok(msg)).is_err() { + break; + } + } + // This channel indices whether the subscription was closed by user. + _ = sub_tx.closed() => { + break; + } + // This channel indicates whether the main task has been closed. + // at this point no further messages are processed. + _ = client_closed.notified() => { + break; + } + } + } +} + +struct ReconnectParams<'a, P> { + url: &'a str, + client_builder: &'a RpcClientBuilder

, + close_reason: RpcError, +} + +async fn reconnect

(params: ReconnectParams<'_, P>) -> Result, RpcError> +where + P: Iterator + Send + 'static + Clone, +{ + let ReconnectParams { + url, + client_builder, + close_reason, + } = params; + + let retry_policy = client_builder.retry_policy.clone(); + + tracing::debug!(target: LOG_TARGET, "Connection to {url} was closed: `{}`; starting to reconnect", display_close_reason(&close_reason)); + + let client = Retry::new(retry_policy.clone(), || { + platform::ws_client(url, client_builder) + }) + .await?; + + tracing::debug!(target: LOG_TARGET, "Connection to {url} was successfully re-established"); + + Ok(client) +} diff --git a/subxt/src/backend/rpc/reconnecting_rpc_client/platform.rs b/subxt/src/backend/rpc/reconnecting_rpc_client/platform.rs new file mode 100644 index 0000000000..2123ba8cbd --- /dev/null +++ b/subxt/src/backend/rpc/reconnecting_rpc_client/platform.rs @@ -0,0 +1,83 @@ +// Copyright 2019-2024 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +use crate::backend::rpc::reconnecting_rpc_client::{RpcClientBuilder, RpcError}; +use jsonrpsee::core::client::Client; +use std::sync::Arc; + +#[cfg(feature = "native")] +pub use tokio::spawn; + +#[cfg(feature = "web")] +pub use wasm_bindgen_futures::spawn_local as spawn; + +#[cfg(feature = "native")] +pub async fn ws_client

( + url: &str, + builder: &RpcClientBuilder

, +) -> Result, RpcError> { + use jsonrpsee::ws_client::WsClientBuilder; + + let RpcClientBuilder { + max_request_size, + max_response_size, + ping_config, + headers, + max_redirections, + id_kind, + max_concurrent_requests, + max_log_len, + request_timeout, + connection_timeout, + .. + } = builder; + + let mut ws_client_builder = WsClientBuilder::new() + .max_request_size(*max_request_size) + .max_response_size(*max_response_size) + .set_headers(headers.clone()) + .max_redirections(*max_redirections as usize) + .max_buffer_capacity_per_subscription(tokio::sync::Semaphore::MAX_PERMITS) + .max_concurrent_requests(*max_concurrent_requests as usize) + .set_max_logging_length(*max_log_len) + .set_tcp_no_delay(true) + .request_timeout(*request_timeout) + .connection_timeout(*connection_timeout) + .id_format(*id_kind); + + if let Some(ping) = ping_config { + ws_client_builder = ws_client_builder.enable_ws_ping(*ping); + } + + let client = ws_client_builder.build(url).await?; + + Ok(Arc::new(client)) +} + +#[cfg(feature = "web")] +pub async fn ws_client

( + url: &str, + builder: &RpcClientBuilder

, +) -> Result, RpcError> { + use jsonrpsee::wasm_client::WasmClientBuilder; + + let RpcClientBuilder { + id_kind, + max_concurrent_requests, + max_log_len, + request_timeout, + .. + } = builder; + + let ws_client_builder = WasmClientBuilder::new() + .max_buffer_capacity_per_subscription(tokio::sync::Semaphore::MAX_PERMITS) + .max_concurrent_requests(*max_concurrent_requests as usize) + .set_max_logging_length(*max_log_len) + .request_timeout(*request_timeout) + .id_format(*id_kind); + + let client = ws_client_builder.build(url).await?; + + Ok(Arc::new(client)) +} diff --git a/subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs b/subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs new file mode 100644 index 0000000000..f5571aadb7 --- /dev/null +++ b/subxt/src/backend/rpc/reconnecting_rpc_client/tests.rs @@ -0,0 +1,274 @@ +// Copyright 2019-2024 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +use super::*; +use futures::{future::Either, FutureExt}; + +use jsonrpsee::core::BoxError; +use jsonrpsee::server::{ + http, stop_channel, ws, ConnectionGuard, ConnectionState, HttpRequest, HttpResponse, RpcModule, + RpcServiceBuilder, ServerConfig, SubscriptionMessage, +}; + +#[tokio::test] +async fn call_works() { + tracing_subscriber::fmt::init(); + let (_handle, addr) = run_server().await.unwrap(); + let client = RpcClient::builder().build(addr).await.unwrap(); + assert!(client.request("say_hello".to_string(), None).await.is_ok(),) +} + +#[tokio::test] +async fn sub_works() { + tracing_subscriber::fmt::init(); + let (_handle, addr) = run_server().await.unwrap(); + + let client = RpcClient::builder() + .retry_policy(ExponentialBackoff::from_millis(50)) + .build(addr) + .await + .unwrap(); + + let mut sub = client + .subscribe( + "subscribe_lo".to_string(), + None, + "unsubscribe_lo".to_string(), + ) + .await + .unwrap(); + + assert!(sub.next().await.is_some()); +} + +#[tokio::test] +async fn sub_with_reconnect() { + tracing_subscriber::fmt::init(); + let (handle, addr) = run_server().await.unwrap(); + let client = RpcClient::builder().build(addr.clone()).await.unwrap(); + + let mut sub = client + .subscribe( + "subscribe_lo".to_string(), + None, + "unsubscribe_lo".to_string(), + ) + .await + .unwrap(); + + let _ = handle.send(()); + + // Hack to wait for the server to restart. + tokio::time::sleep(Duration::from_millis(100)).await; + + assert!(matches!(sub.next().await, Some(Ok(_)))); + assert!(matches!( + sub.next().await, + Some(Err(DisconnectedWillReconnect(_))) + )); + + // Restart the server. + let (_handle, _) = run_server_with_settings(Some(&addr), false).await.unwrap(); + + // Hack to wait for the server to restart. + tokio::time::sleep(Duration::from_millis(100)).await; + + // Subscription should work after reconnect. + let mut sub = client + .subscribe( + "subscribe_lo".to_string(), + None, + "unsubscribe_lo".to_string(), + ) + .await + .unwrap(); + + assert!(matches!(sub.next().await, Some(Ok(_)))); +} + +#[tokio::test] +async fn call_with_reconnect() { + tracing_subscriber::fmt::init(); + let (handle, addr) = run_server_with_settings(None, true).await.unwrap(); + + let client = Arc::new(RpcClient::builder().build(addr.clone()).await.unwrap()); + + let req_fut = client.request("say_hello".to_string(), None).boxed(); + let timeout_fut = tokio::time::sleep(Duration::from_secs(5)); + + // If the call isn't replied in 5 secs then it's regarded as it's still pending. + let req_fut = match futures::future::select(Box::pin(timeout_fut), req_fut).await { + Either::Left((_, f)) => f, + Either::Right(_) => panic!("RPC call finished"), + }; + + // Close the connection with a pending call. + let _ = handle.send(()); + + // Restart the server + let (_handle, _) = run_server_with_settings(Some(&addr), false).await.unwrap(); + + // Hack to wait for the server to restart. + tokio::time::sleep(Duration::from_millis(100)).await; + + // This call should fail because reconnect. + assert!(req_fut.await.is_err()); + // Future call should work after reconnect. + assert!(client.request("say_hello".to_string(), None).await.is_ok()); +} + +async fn run_server() -> Result<(tokio::sync::broadcast::Sender<()>, String), BoxError> { + run_server_with_settings(None, false).await +} + +async fn run_server_with_settings( + url: Option<&str>, + dont_respond_to_method_calls: bool, +) -> Result<(tokio::sync::broadcast::Sender<()>, String), BoxError> { + use jsonrpsee::server::HttpRequest; + + let sockaddr = match url { + Some(url) => url.strip_prefix("ws://").unwrap(), + None => "127.0.0.1:0", + }; + + let mut i = 0; + + let listener = loop { + if let Ok(l) = tokio::net::TcpListener::bind(sockaddr).await { + break l; + } + tokio::time::sleep(Duration::from_millis(100)).await; + + if i >= 10 { + panic!("Addr already in use"); + } + + i += 1; + }; + + let mut module = RpcModule::new(()); + + if dont_respond_to_method_calls { + module.register_async_method("say_hello", |_, _, _| async { + futures::future::pending::<()>().await; + "timeout" + })?; + } else { + module.register_async_method("say_hello", |_, _, _| async { "lo" })?; + } + + module.register_subscription( + "subscribe_lo", + "subscribe_lo", + "unsubscribe_lo", + |_params, pending, _ctx, _| async move { + let sink = pending.accept().await.unwrap(); + let i = 0; + + loop { + if sink + .send(SubscriptionMessage::from_json(&i).unwrap()) + .await + .is_err() + { + break; + } + tokio::time::sleep(std::time::Duration::from_secs(6)).await; + } + }, + )?; + + let (tx, mut rx) = tokio::sync::broadcast::channel(4); + let tx2 = tx.clone(); + let (stop_handle, server_handle) = stop_channel(); + let addr = listener.local_addr().expect("Could not find local addr"); + + tokio::spawn(async move { + loop { + let sock = tokio::select! { + res = listener.accept() => { + match res { + Ok((stream, _remote_addr)) => stream, + Err(e) => { + tracing::error!("Failed to accept connection: {:?}", e); + continue; + } + } + } + _ = rx.recv() => { + break + } + }; + + let module = module.clone(); + let rx2 = tx2.subscribe(); + let tx2 = tx2.clone(); + let stop_handle2 = stop_handle.clone(); + + let svc = tower::service_fn(move |req: HttpRequest| { + let module = module.clone(); + let tx = tx2.clone(); + let stop_handle = stop_handle2.clone(); + + let conn_permit = ConnectionGuard::new(1).try_acquire().unwrap(); + + if ws::is_upgrade_request(&req) { + let rpc_service = RpcServiceBuilder::new(); + let conn = ConnectionState::new(stop_handle, 1, conn_permit); + + async move { + let mut rx = tx.subscribe(); + + let (rp, conn_fut) = + ws::connect(req, ServerConfig::default(), module, conn, rpc_service) + .await + .unwrap(); + + tokio::spawn(async move { + tokio::select! { + _ = conn_fut => (), + _ = rx.recv() => {}, + } + }); + + Ok::<_, BoxError>(rp) + } + .boxed() + } else { + async { Ok(http::response::denied()) }.boxed() + } + }); + + tokio::spawn(serve_with_graceful_shutdown(sock, svc, rx2)); + } + + drop(server_handle); + }); + + Ok((tx, format!("ws://{}", addr))) +} + +async fn serve_with_graceful_shutdown( + io: I, + service: S, + mut rx: tokio::sync::broadcast::Receiver<()>, +) where + S: tower::Service, Response = HttpResponse> + + Clone + + Send + + 'static, + S::Future: Send, + S::Response: Send, + S::Error: Into, + B: http_body::Body + Send + 'static, + B::Error: Into, + I: tokio::io::AsyncRead + tokio::io::AsyncWrite + Send + Unpin + 'static, +{ + if let Err(e) = + jsonrpsee::server::serve_with_graceful_shutdown(io, service, rx.recv().map(|_| ())).await + { + tracing::error!("Error while serving: {:?}", e); + } +} diff --git a/subxt/src/backend/rpc/reconnecting_rpc_client/utils.rs b/subxt/src/backend/rpc/reconnecting_rpc_client/utils.rs new file mode 100644 index 0000000000..880708dcdf --- /dev/null +++ b/subxt/src/backend/rpc/reconnecting_rpc_client/utils.rs @@ -0,0 +1,14 @@ +// Copyright 2019-2024 Parity Technologies (UK) Ltd. +// This file is dual-licensed as Apache-2.0 or GPL-3.0. +// see LICENSE for license details. + +//! Utils. + +use crate::backend::rpc::reconnecting_rpc_client::RpcError; + +pub fn display_close_reason(err: &RpcError) -> String { + match err { + RpcError::RestartNeeded(e) => e.to_string(), + other => other.to_string(), + } +} diff --git a/subxt/src/macros.rs b/subxt/src/macros.rs index 8e5a8283df..84cad40d2c 100644 --- a/subxt/src/macros.rs +++ b/subxt/src/macros.rs @@ -56,7 +56,7 @@ macro_rules! cfg_jsonrpsee_web { macro_rules! cfg_reconnecting_rpc_client { ($($item:item)*) => { $( - #[cfg(feature = "unstable-reconnecting-rpc-client")] + #[cfg(all(feature = "unstable-reconnecting-rpc-client", any(feature = "native", feature = "web")))] #[cfg_attr(docsrs, doc(cfg(feature = "unstable-reconnecting-rpc-client")))] $item )* diff --git a/testing/wasm-rpc-tests/Cargo.lock b/testing/wasm-rpc-tests/Cargo.lock index c32ad2358c..9e7f52ba09 100644 --- a/testing/wasm-rpc-tests/Cargo.lock +++ b/testing/wasm-rpc-tests/Cargo.lock @@ -307,12 +307,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "cfg_aliases" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" - [[package]] name = "chacha20" version = "0.9.1" @@ -1793,23 +1787,6 @@ dependencies = [ "getrandom", ] -[[package]] -name = "reconnecting-jsonrpsee-ws-client" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06fa4f17e09edfc3131636082faaec633c7baa269396b4004040bc6c52f49f65" -dependencies = [ - "cfg_aliases", - "finito", - "futures", - "jsonrpsee", - "serde_json", - "thiserror", - "tokio", - "tracing", - "wasm-bindgen-futures", -] - [[package]] name = "ring" version = "0.17.8" @@ -2494,6 +2471,7 @@ dependencies = [ "async-trait", "derive-where", "either", + "finito", "frame-metadata 16.0.0", "futures", "getrandom", @@ -2503,7 +2481,6 @@ dependencies = [ "jsonrpsee", "parity-scale-codec", "primitive-types", - "reconnecting-jsonrpsee-ws-client", "scale-bits", "scale-decode", "scale-encode", @@ -2517,8 +2494,10 @@ dependencies = [ "subxt-macro", "subxt-metadata", "thiserror", + "tokio", "tracing", "url", + "wasm-bindgen-futures", ] [[package]] diff --git a/testing/wasm-rpc-tests/Cargo.toml b/testing/wasm-rpc-tests/Cargo.toml index 7880c9964a..103091739c 100644 --- a/testing/wasm-rpc-tests/Cargo.toml +++ b/testing/wasm-rpc-tests/Cargo.toml @@ -15,4 +15,4 @@ futures-util = "0.3.30" # This crate is not a part of the workspace, because it # requires the "jsonrpsee web" features to be enabled, which we don't # want enabled for workspace builds in general. -subxt = { path = "../../subxt", default-features = false, features = ["web", "jsonrpsee"] } +subxt = { path = "../../subxt", default-features = false, features = ["web", "jsonrpsee", "unstable-reconnecting-rpc-client"] } diff --git a/testing/wasm-rpc-tests/tests/wasm.rs b/testing/wasm-rpc-tests/tests/wasm.rs index 6f8ae1e891..a62102333d 100644 --- a/testing/wasm-rpc-tests/tests/wasm.rs +++ b/testing/wasm-rpc-tests/tests/wasm.rs @@ -1,6 +1,7 @@ #![cfg(target_arch = "wasm32")] use subxt::config::SubstrateConfig; +use subxt::backend::rpc::reconnecting_rpc_client::RpcClient as ReconnectingRpcClient; use wasm_bindgen_test::*; wasm_bindgen_test::wasm_bindgen_test_configure!(run_in_browser); @@ -32,5 +33,14 @@ async fn wasm_ws_transport_works() { .unwrap(); let mut stream = client.backend().stream_best_block_headers().await.unwrap(); - stream.next().await; + assert!(stream.next().await.is_some()); } + +#[wasm_bindgen_test] +async fn reconnecting_rpc_client_ws_transport_works() { + let rpc = ReconnectingRpcClient::builder().build("ws://127.0.0.1:9944".to_string()).await.unwrap(); + let client = subxt::client::OnlineClient::::from_rpc_client(rpc.clone()).await.unwrap(); + let mut stream = client.backend().stream_best_block_headers().await.unwrap(); + assert!(stream.next().await.is_some()); +} + From e6d9f80d9e1a4a3dbf123acd51af3683685001af Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Tue, 27 Aug 2024 16:13:56 +0200 Subject: [PATCH 116/137] ci: add dependabot check (#1732) * add dependabot check * Update .github/workflows/validate-dependabot.yml * use latest version * remove pr comment --- .github/workflows/validate-dependabot.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/workflows/validate-dependabot.yml diff --git a/.github/workflows/validate-dependabot.yml b/.github/workflows/validate-dependabot.yml new file mode 100644 index 0000000000..9166e9937c --- /dev/null +++ b/.github/workflows/validate-dependabot.yml @@ -0,0 +1,14 @@ +name: Dependabot + +on: + pull_request: + paths: + - '.github/dependabot.yml' + - '.github/workflows/validate-dependabot.yml' +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: marocchino/validate-dependabot@v3 + id: validate From 374193ac311ff31b2986265bf186a4b45478feaf Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Wed, 28 Aug 2024 19:51:53 +0200 Subject: [PATCH 117/137] examples: fix reconnecting logging target (#1733) --- subxt/examples/setup_reconnecting_rpc_client.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/subxt/examples/setup_reconnecting_rpc_client.rs b/subxt/examples/setup_reconnecting_rpc_client.rs index 42ca1a766e..f89e08d0e1 100644 --- a/subxt/examples/setup_reconnecting_rpc_client.rs +++ b/subxt/examples/setup_reconnecting_rpc_client.rs @@ -2,7 +2,7 @@ //! which hidden behind behind `--feature unstable-reconnecting-rpc-client` //! //! To utilize full logs from the RPC client use: -//! `RUST_LOG="jsonrpsee=trace,reconnecting_jsonrpsee_ws_client=trace"` +//! `RUST_LOG="jsonrpsee=trace,subxt-reconnecting-rpc-client=trace"` #![allow(missing_docs)] From 6e0145168421383152f4ed6a6a72a708a0eb01e4 Mon Sep 17 00:00:00 2001 From: Niklas Adolfsson Date: Thu, 29 Aug 2024 17:39:32 +0200 Subject: [PATCH 118/137] fix: substrate-runner support several rpc endpoints (#1736) * fix: support several rpc endpoints in substrate Close #1735 * Update testing/substrate-runner/src/lib.rs * Update testing/substrate-runner/src/lib.rs * fix grumbles * Update testing/substrate-runner/src/lib.rs --- testing/substrate-runner/src/lib.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/testing/substrate-runner/src/lib.rs b/testing/substrate-runner/src/lib.rs index eb2e6064b6..790d3d6861 100644 --- a/testing/substrate-runner/src/lib.rs +++ b/testing/substrate-runner/src/lib.rs @@ -197,9 +197,10 @@ fn try_find_substrate_port_from_output( .or_else(|| line.rsplit_once("Running JSON-RPC server: addr=127.0.0.1:")) .map(|(_, port_str)| port_str); - if let Some(line_port) = line_port { - // trim non-numeric chars from the end of the port part of the line. - let port_str = line_port.trim_end_matches(|b: char| !b.is_ascii_digit()); + if let Some(ports) = line_port { + // If more than one rpc server is started the log will capture multiple ports + // such as `addr=127.0.0.1:9944,[::1]:9944` + let port_str: String = ports.chars().take_while(|c| c.is_numeric()).collect(); // expect to have a number here (the chars after '127.0.0.1:') and parse them into a u16. let port_num = port_str From 9ea7b14fec1f29ee8fed76e7e71a9abb358343f5 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> Date: Fri, 30 Aug 2024 10:16:39 +0200 Subject: [PATCH 119/137] Integration tests for `unstable-reconnecting-rpc-client` (#1711) --------- Co-authored-by: Niklas Adolfsson --- Cargo.toml | 2 +- testing/integration-tests/Cargo.toml | 2 +- .../src/full_client/client/mod.rs | 42 ++++++++++- .../integration-tests/src/utils/context.rs | 11 ++- .../integration-tests/src/utils/node_proc.rs | 62 +++++++++++++---- testing/substrate-runner/src/lib.rs | 69 ++++++++++++++++++- testing/test-runtime/Cargo.toml | 5 +- 7 files changed, 173 insertions(+), 20 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 40dc342bf5..9f75698d18 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ exclude = [ "testing/wasm-lightclient-tests", "signer/wasm-tests", "examples/wasm-example", - "examples/parachain-example" + "examples/parachain-example", ] resolver = "2" diff --git a/testing/integration-tests/Cargo.toml b/testing/integration-tests/Cargo.toml index 451a99a500..ecf485d57b 100644 --- a/testing/integration-tests/Cargo.toml +++ b/testing/integration-tests/Cargo.toml @@ -36,7 +36,7 @@ serde = { workspace = true } scale-info = { workspace = true, features = ["bit-vec"] } sp-core = { workspace = true } syn = { workspace = true } -subxt = { workspace = true, features = ["unstable-metadata", "native", "jsonrpsee", "substrate-compat"] } +subxt = { workspace = true, features = ["unstable-metadata", "native", "jsonrpsee", "substrate-compat", "unstable-reconnecting-rpc-client"] } subxt-signer = { workspace = true, features = ["default"] } subxt-codegen = { workspace = true } subxt-metadata = { workspace = true } diff --git a/testing/integration-tests/src/full_client/client/mod.rs b/testing/integration-tests/src/full_client/client/mod.rs index 2685551335..3e08a8055a 100644 --- a/testing/integration-tests/src/full_client/client/mod.rs +++ b/testing/integration-tests/src/full_client/client/mod.rs @@ -2,8 +2,10 @@ // This file is dual-licensed as Apache-2.0 or GPL-3.0. // see LICENSE for license details. +use std::collections::HashSet; + use crate::{ - subxt_test, test_context, + subxt_test, test_context, test_context_reconnecting_rpc_client, utils::{node_runtime, wait_for_blocks}, }; use codec::{Decode, Encode}; @@ -409,3 +411,41 @@ async fn partial_fee_estimate_correct() { // Both methods should yield the same fee assert_eq!(partial_fee_1, partial_fee_2); } + +#[subxt_test] +async fn legacy_and_unstable_block_subscription_reconnect() { + let ctx = test_context_reconnecting_rpc_client().await; + + let api = ctx.unstable_client().await; + + let unstable_client_blocks = move |num: usize| { + let api = api.clone(); + async move { + api.blocks() + .subscribe_finalized() + .await + .unwrap() + .take(num) + .map(|x| x.unwrap().hash().to_string()) + .collect::>() + .await + } + }; + + let blocks = unstable_client_blocks(3).await; + let blocks: HashSet = HashSet::from_iter(blocks.into_iter()); + + assert!(blocks.len() == 3); + + let ctx = ctx.restart().await; + + // Make client aware that connection was dropped and force them to reconnect + let _ = ctx.unstable_client().await.backend().genesis_hash().await; + + let unstable_blocks = unstable_client_blocks(6).await; + + let unstable_blocks: HashSet = HashSet::from_iter(unstable_blocks.into_iter()); + let intersection = unstable_blocks.intersection(&blocks).count(); + + assert!(intersection == 3); +} diff --git a/testing/integration-tests/src/utils/context.rs b/testing/integration-tests/src/utils/context.rs index e987763eb3..7542a0dac4 100644 --- a/testing/integration-tests/src/utils/context.rs +++ b/testing/integration-tests/src/utils/context.rs @@ -7,17 +7,20 @@ pub(crate) use crate::{node_runtime, utils::TestNodeProcess}; use subxt::client::OnlineClient; use subxt::SubstrateConfig; +use super::node_proc::RpcClientKind; + /// `substrate-node` should be installed on the $PATH. We fall back /// to also checking for an older `substrate` binary. const SUBSTRATE_NODE_PATHS: &str = "substrate-node,substrate"; -pub async fn test_context_with(authority: String) -> TestContext { +pub async fn test_context_with(authority: String, rpc_client_kind: RpcClientKind) -> TestContext { let paths = std::env::var("SUBSTRATE_NODE_PATH").unwrap_or_else(|_| SUBSTRATE_NODE_PATHS.to_string()); let paths: Vec<_> = paths.split(',').map(|p| p.trim()).collect(); let mut proc = TestContext::build(&paths); proc.with_authority(authority); + proc.with_rpc_client_kind(rpc_client_kind); proc.spawn::().await.unwrap() } @@ -28,5 +31,9 @@ pub type TestContext = TestNodeProcess; pub type TestClient = OnlineClient; pub async fn test_context() -> TestContext { - test_context_with("alice".to_string()).await + test_context_with("alice".to_string(), RpcClientKind::Legacy).await +} + +pub async fn test_context_reconnecting_rpc_client() -> TestContext { + test_context_with("alice".to_string(), RpcClientKind::UnstableReconnecting).await } diff --git a/testing/integration-tests/src/utils/node_proc.rs b/testing/integration-tests/src/utils/node_proc.rs index b2c0197d5f..96e2cbd22a 100644 --- a/testing/integration-tests/src/utils/node_proc.rs +++ b/testing/integration-tests/src/utils/node_proc.rs @@ -5,7 +5,9 @@ use std::cell::RefCell; use std::ffi::{OsStr, OsString}; use std::sync::Arc; +use std::time::Duration; use substrate_runner::SubstrateNode; +use subxt::backend::rpc::reconnecting_rpc_client::{ExponentialBackoff, RpcClientBuilder}; use subxt::{ backend::{legacy, rpc, unstable}, Config, OnlineClient, @@ -58,26 +60,29 @@ where TestNodeProcessBuilder::new(paths) } + pub async fn restart(mut self) -> Self { + tokio::task::spawn_blocking(move || { + if let Some(ref mut proc) = &mut self.proc { + proc.restart().unwrap(); + } + self + }) + .await + .expect("to succeed") + } + /// Hand back an RPC client connected to the test node which exposes the legacy RPC methods. pub async fn legacy_rpc_methods(&self) -> legacy::LegacyRpcMethods { - let rpc_client = self.rpc_client().await; + let rpc_client = self.rpc_client.clone(); legacy::LegacyRpcMethods::new(rpc_client) } /// Hand back an RPC client connected to the test node which exposes the unstable RPC methods. pub async fn unstable_rpc_methods(&self) -> unstable::UnstableRpcMethods { - let rpc_client = self.rpc_client().await; + let rpc_client = self.rpc_client.clone(); unstable::UnstableRpcMethods::new(rpc_client) } - /// Hand back an RPC client connected to the test node. - pub async fn rpc_client(&self) -> rpc::RpcClient { - let url = get_url(self.proc.as_ref().map(|p| p.ws_port())); - rpc::RpcClient::from_url(url) - .await - .expect("Unable to connect RPC client to test node") - } - /// Always return a client using the unstable backend. /// Only use for comparing backends; use [`TestNodeProcess::client()`] normally, /// which enables us to run each test against both backends. @@ -109,12 +114,24 @@ where pub fn client(&self) -> OnlineClient { self.client.clone() } + + /// Returns the rpc client connected to the node + pub fn rpc_client(&self) -> rpc::RpcClient { + self.rpc_client.clone() + } +} + +/// Kind of rpc client to use in tests +pub enum RpcClientKind { + Legacy, + UnstableReconnecting, } /// Construct a test node process. pub struct TestNodeProcessBuilder { node_paths: Vec, authority: Option, + rpc_client: RpcClientKind, } impl TestNodeProcessBuilder { @@ -132,9 +149,16 @@ impl TestNodeProcessBuilder { Self { node_paths: paths, authority: None, + rpc_client: RpcClientKind::Legacy, } } + /// Set the testRunner to use a preferred RpcClient impl, ie Legacy or Unstable + pub fn with_rpc_client_kind(&mut self, rpc_client_kind: RpcClientKind) -> &mut Self { + self.rpc_client = rpc_client_kind; + self + } + /// Set the authority dev account for a node in validator mode e.g. --alice. pub fn with_authority(&mut self, account: String) -> &mut Self { self.authority = Some(account); @@ -161,9 +185,11 @@ impl TestNodeProcessBuilder { }; let ws_url = get_url(proc.as_ref().map(|p| p.ws_port())); - let rpc_client = build_rpc_client(&ws_url) - .await - .map_err(|e| format!("Failed to connect to node at {ws_url}: {e}"))?; + let rpc_client = match self.rpc_client { + RpcClientKind::Legacy => build_rpc_client(&ws_url).await, + RpcClientKind::UnstableReconnecting => build_unstable_rpc_client(&ws_url).await, + } + .map_err(|e| format!("Failed to connect to node at {ws_url}: {e}"))?; // Cache whatever client we build, and None for the other. #[allow(unused_assignments, unused_mut)] @@ -206,6 +232,16 @@ async fn build_rpc_client(ws_url: &str) -> Result { Ok(rpc_client) } +async fn build_unstable_rpc_client(ws_url: &str) -> Result { + let client = RpcClientBuilder::new() + .retry_policy(ExponentialBackoff::from_millis(100).max_delay(Duration::from_secs(10))) + .build(ws_url.to_string()) + .await + .map_err(|e| format!("Cannot construct RPC client: {e}"))?; + + Ok(rpc::RpcClient::new(client)) +} + async fn build_legacy_client( rpc_client: rpc::RpcClient, ) -> Result, String> { diff --git a/testing/substrate-runner/src/lib.rs b/testing/substrate-runner/src/lib.rs index 790d3d6861..82d3ea6258 100644 --- a/testing/substrate-runner/src/lib.rs +++ b/testing/substrate-runner/src/lib.rs @@ -70,16 +70,27 @@ impl SubstrateNodeBuilder { } /// Spawn the node, handing back an object which, when dropped, will stop it. - pub fn spawn(self) -> Result { + pub fn spawn(mut self) -> Result { // Try to spawn the binary at each path, returning the // first "ok" or last error that we encountered. let mut res = Err(io::Error::new( io::ErrorKind::Other, "No binary path provided", )); + + let path = Command::new("mktemp") + .arg("-d") + .output() + .expect("failed to create base dir"); + let path = String::from_utf8(path.stdout).expect("bad path"); + let mut bin_path = OsString::new(); for binary_path in &self.binary_paths { + self.custom_flags + .insert("base-path".into(), Some(path.clone().into())); + res = SubstrateNodeBuilder::try_spawn(binary_path, &self.custom_flags); if res.is_ok() { + bin_path.clone_from(binary_path); break; } } @@ -98,10 +109,13 @@ impl SubstrateNodeBuilder { let p2p_port = p2p_port.ok_or(Error::CouldNotExtractP2pPort)?; Ok(SubstrateNode { + binary_path: bin_path, + custom_flags: self.custom_flags, proc, ws_port, p2p_address, p2p_port, + base_path: path, }) } @@ -131,10 +145,13 @@ impl SubstrateNodeBuilder { } pub struct SubstrateNode { + binary_path: OsString, + custom_flags: HashMap>, proc: process::Child, ws_port: u16, p2p_address: String, p2p_port: u32, + base_path: String, } impl SubstrateNode { @@ -167,11 +184,61 @@ impl SubstrateNode { pub fn kill(&mut self) -> std::io::Result<()> { self.proc.kill() } + + /// restart the node, handing back an object which, when dropped, will stop it. + pub fn restart(&mut self) -> Result<(), std::io::Error> { + let res: Result<(), io::Error> = self.kill(); + + match res { + Ok(_) => (), + Err(e) => { + self.cleanup(); + return Err(e); + } + } + + let proc = self.try_spawn()?; + + self.proc = proc; + // Wait for RPC port to be logged (it's logged to stderr). + + Ok(()) + } + + // Attempt to spawn a binary with the path/flags given. + fn try_spawn(&mut self) -> Result { + let mut cmd = Command::new(&self.binary_path); + + cmd.env("RUST_LOG", "info,libp2p_tcp=debug") + .stdout(process::Stdio::piped()) + .stderr(process::Stdio::piped()) + .arg("--dev"); + + for (key, val) in &self.custom_flags { + let arg = match val { + Some(val) => format!("--{key}={val}"), + None => format!("--{key}"), + }; + cmd.arg(arg); + } + + cmd.arg(format!("--rpc-port={}", self.ws_port)); + cmd.arg(format!("--port={}", self.p2p_port)); + cmd.spawn() + } + + fn cleanup(&self) { + let _ = Command::new("rm") + .args(["-rf", &self.base_path]) + .output() + .expect("success"); + } } impl Drop for SubstrateNode { fn drop(&mut self) { let _ = self.kill(); + self.cleanup() } } diff --git a/testing/test-runtime/Cargo.toml b/testing/test-runtime/Cargo.toml index b7b69f22fb..108f784eda 100644 --- a/testing/test-runtime/Cargo.toml +++ b/testing/test-runtime/Cargo.toml @@ -14,7 +14,10 @@ serde = { workspace = true } tokio = { workspace = true, features = ["rt-multi-thread"] } tokio-util = { workspace = true, features = ["compat"] } which = { workspace = true } -jsonrpsee = { workspace = true, features = ["async-client", "client-ws-transport-tls"] } +jsonrpsee = { workspace = true, features = [ + "async-client", + "client-ws-transport-tls", +] } hex = { workspace = true } codec = { workspace = true } From 3b8e3e108fdfd96afff25d579b5c489a88f130d2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 11:30:49 +0300 Subject: [PATCH 120/137] build(deps): bump hyper from 1.3.1 to 1.4.1 (#1748) Bumps [hyper](https://github.com/hyperium/hyper) from 1.3.1 to 1.4.1. - [Release notes](https://github.com/hyperium/hyper/releases) - [Changelog](https://github.com/hyperium/hyper/blob/master/CHANGELOG.md) - [Commits](https://github.com/hyperium/hyper/compare/v1.3.1...v1.4.1) --- updated-dependencies: - dependency-name: hyper dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 81000c6053..eb48a26a26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2187,9 +2187,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" [[package]] name = "hyper" -version = "1.3.1" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d" +checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05" dependencies = [ "bytes", "futures-channel", From a310f716267f5c49a2c3ab17967cb319d6d209b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 11:30:59 +0300 Subject: [PATCH 121/137] build(deps): bump http-body from 1.0.0 to 1.0.1 (#1747) Bumps [http-body](https://github.com/hyperium/http-body) from 1.0.0 to 1.0.1. - [Release notes](https://github.com/hyperium/http-body/releases) - [Commits](https://github.com/hyperium/http-body/compare/v1.0.0...v1.0.1) --- updated-dependencies: - dependency-name: http-body dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index eb48a26a26..a65c3139c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2152,9 +2152,9 @@ dependencies = [ [[package]] name = "http-body" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" dependencies = [ "bytes", "http 1.1.0", From 290bee34861c3004d85b23403edc5bbe65407113 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 11:31:10 +0300 Subject: [PATCH 122/137] build(deps): bump tokio from 1.39.3 to 1.40.0 (#1746) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.39.3 to 1.40.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.39.3...tokio-1.40.0) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Cargo.lock | 4 ++-- Cargo.toml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index a65c3139c8..cf57174179 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5269,9 +5269,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.39.3" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9babc99b9923bfa4804bd74722ff02c0381021eafa4db9949217e3be8e84fff5" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 9f75698d18..f5e555b0db 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -104,7 +104,7 @@ serde = { version = "1.0.209", default-features = false, features = ["derive"] } serde_json = { version = "1.0.127", default-features = false } syn = { version = "2.0.15", features = ["full", "extra-traits"] } thiserror = "1.0.63" -tokio = { version = "1.39", default-features = false } +tokio = { version = "1.40", default-features = false } tracing = { version = "0.1.40", default-features = false } tracing-wasm = "0.2.1" tracing-subscriber = "0.3.18" From 3866737b29328b784ca94914dc1334a3fa2ab0a5 Mon Sep 17 00:00:00 2001 From: Pavlo Khrystenko <45178695+pkhry@users.noreply.github.com> Date: Mon, 2 Sep 2024 11:07:50 +0200 Subject: [PATCH 123/137] Add support for generating metadata from runtime wasm files (#1720) closes #1660 --- Cargo.lock | 997 ++++++++++++++++-- Cargo.toml | 6 + .../westend_runtime.compact.compressed.wasm | Bin 0 -> 1981877 bytes artifacts/westend_runtime.wasm | Bin 0 -> 9828477 bytes codegen/src/error.rs | 3 + macro/Cargo.toml | 6 + macro/src/lib.rs | 40 +- macro/src/wasm_loader.rs | 55 + subxt/Cargo.toml | 3 + testing/ui-tests/Cargo.toml | 2 +- .../src/correct/wasm_runtime_metadata.rs | 13 + .../src/incorrect/need_url_or_path.stderr | 2 +- .../src/incorrect/url_and_path_provided.rs | 7 + .../incorrect/url_and_path_provided.stderr | 14 +- 14 files changed, 1075 insertions(+), 73 deletions(-) create mode 100644 artifacts/westend_runtime.compact.compressed.wasm create mode 100755 artifacts/westend_runtime.wasm create mode 100644 macro/src/wasm_loader.rs create mode 100644 testing/ui-tests/src/correct/wasm_runtime_metadata.rs diff --git a/Cargo.lock b/Cargo.lock index cf57174179..612e2d42fb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -776,6 +776,11 @@ name = "cc" version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" +dependencies = [ + "jobserver", + "libc", + "once_cell", +] [[package]] name = "cesu8" @@ -1048,6 +1053,50 @@ dependencies = [ "libc", ] +[[package]] +name = "cranelift-bforest" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1277fbfa94bc82c8ec4af2ded3e639d49ca5f7f3c7eeab2c66accd135ece4e70" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6e8c31ad3b2270e9aeec38723888fe1b0ace3bea2b06b3f749ccf46661d3220" +dependencies = [ + "bumpalo", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "cranelift-isle", + "gimli 0.27.3", + "hashbrown 0.13.2", + "log", + "regalloc2", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ac5ac30d62b2d66f12651f6b606dbdfd9c2cfd0908de6b387560a277c5c9da" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd82b8b376247834b59ed9bdc0ddeb50f517452827d4a11bccf5937b213748b8" + [[package]] name = "cranelift-entity" version = "0.95.1" @@ -1057,6 +1106,51 @@ dependencies = [ "serde", ] +[[package]] +name = "cranelift-frontend" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a25d9d0a0ae3079c463c34115ec59507b4707175454f0eee0891e83e30e82d" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80de6a7d0486e4acbd5f9f87ec49912bf4c8fb6aea00087b989685460d4469ba" + +[[package]] +name = "cranelift-native" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb6b03e0e03801c4b3fd8ce0758a94750c07a44e7944cc0ffbf0d3f2e7c79b00" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.95.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff3220489a3d928ad91e59dd7aeaa8b3de18afb554a6211213673a71c90737ac" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools 0.10.5", + "log", + "smallvec", + "wasmparser", + "wasmtime-types", +] + [[package]] name = "crc32fast" version = "1.4.0" @@ -1384,6 +1478,27 @@ dependencies = [ "subtle", ] +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + [[package]] name = "docify" version = "0.2.8" @@ -1407,7 +1522,7 @@ dependencies = [ "regex", "syn 2.0.60", "termcolor", - "toml", + "toml 0.8.12", "walkdir", ] @@ -1538,6 +1653,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + [[package]] name = "environmental" version = "1.1.4" @@ -1654,6 +1782,16 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38793c55593b33412e3ae40c2c9781ffaa6f438f6f8c10f24e71846fbd7ae01e" +[[package]] +name = "file-per-thread-logger" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84f2e425d9790201ba4af4630191feac6dcc98765b118d4d18e91d23c2353866" +dependencies = [ + "env_logger", + "log", +] + [[package]] name = "finito" version = "0.1.0" @@ -1842,6 +1980,15 @@ dependencies = [ "slab", ] +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + [[package]] name = "generate-custom-metadata" version = "0.37.0" @@ -2071,6 +2218,12 @@ version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +[[package]] +name = "hermit-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc" + [[package]] name = "hex" version = "0.4.3" @@ -2185,6 +2338,12 @@ version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + [[package]] name = "hyper" version = "1.4.1" @@ -2394,7 +2553,7 @@ dependencies = [ "regex", "scale-info", "serde", - "sp-core", + "sp-core 31.0.0", "substrate-runner", "subxt", "subxt-codegen", @@ -2420,6 +2579,17 @@ dependencies = [ "windows-sys 0.48.0", ] +[[package]] +name = "is-terminal" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "261f68e344040fbd0edea105bef17c66edf46f984ddb1115b775ce31be948f4b" +dependencies = [ + "hermit-abi 0.4.0", + "libc", + "windows-sys 0.52.0", +] + [[package]] name = "itertools" version = "0.10.5" @@ -2429,6 +2599,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + [[package]] name = "itertools" version = "0.12.1" @@ -2464,6 +2643,15 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +[[package]] +name = "jobserver" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0" +dependencies = [ + "libc", +] + [[package]] name = "js-sys" version = "0.3.70" @@ -2684,6 +2872,16 @@ version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058" +[[package]] +name = "libredox" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" +dependencies = [ + "bitflags 2.5.0", + "libc", +] + [[package]] name = "libsecp256k1" version = "0.7.1" @@ -3037,9 +3235,9 @@ dependencies = [ [[package]] name = "parity-scale-codec" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881331e34fa842a2fb61cc2db9643a8fedc615e47cfcc52597d1af0db9a7e8fe" +checksum = "306800abfa29c7f16596b5970a588435e3d5b3149683d00c12b699cc19f895ee" dependencies = [ "arrayvec 0.7.4", "bitvec", @@ -3052,16 +3250,22 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.6.9" +version = "3.6.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be30eaf4b0a9fba5336683b38de57bb86d179a35862ba6bfcf57625d006bde5b" +checksum = "d830939c76d294956402033aee57a6da7b438f2294eb94864c37b0569053a42c" dependencies = [ - "proc-macro-crate 2.0.0", + "proc-macro-crate 3.1.0", "proc-macro2", "quote", "syn 1.0.109", ] +[[package]] +name = "parity-wasm" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" + [[package]] name = "parking" version = "2.2.0" @@ -3184,6 +3388,12 @@ dependencies = [ "spki", ] +[[package]] +name = "pkg-config" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" + [[package]] name = "platforms" version = "3.4.0" @@ -3218,6 +3428,28 @@ dependencies = [ "plotters-backend", ] +[[package]] +name = "polkavm" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a3693e5efdb2bf74e449cd25fd777a28bd7ed87e41f5d5da75eb31b4de48b94" +dependencies = [ + "libc", + "log", + "polkavm-assembler", + "polkavm-common 0.9.0", + "polkavm-linux-raw", +] + +[[package]] +name = "polkavm-assembler" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa96d6d868243acc12de813dd48e756cbadcc8e13964c70d272753266deadc1" +dependencies = [ + "log", +] + [[package]] name = "polkavm-common" version = "0.8.0" @@ -3229,6 +3461,9 @@ name = "polkavm-common" version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1d9428a5cfcc85c5d7b9fc4b6a18c4b802d0173d768182a51cc7751640f08b92" +dependencies = [ + "log", +] [[package]] name = "polkavm-derive" @@ -3292,6 +3527,12 @@ dependencies = [ "syn 2.0.60", ] +[[package]] +name = "polkavm-linux-raw" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26e85d3456948e650dff0cfc85603915847faf893ed1e66b020bb82ef4557120" + [[package]] name = "polling" version = "3.7.0" @@ -3367,15 +3608,6 @@ dependencies = [ "toml_edit 0.19.15", ] -[[package]] -name = "proc-macro-crate" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e8366a6159044a37876a2b9817124296703c586a5c92e2c53751fa06d8d43e8" -dependencies = [ - "toml_edit 0.20.7", -] - [[package]] name = "proc-macro-crate" version = "3.1.0" @@ -3542,6 +3774,17 @@ dependencies = [ "bitflags 2.5.0", ] +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + [[package]] name = "ref-cast" version = "1.0.22" @@ -3562,6 +3805,18 @@ dependencies = [ "syn 2.0.60", ] +[[package]] +name = "regalloc2" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80535183cae11b149d618fbd3c37e38d7cda589d82d7769e196ca9a9042d7621" +dependencies = [ + "fxhash", + "log", + "slice-group-by", + "smallvec", +] + [[package]] name = "regex" version = "1.10.6" @@ -3835,6 +4090,87 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "sc-allocator" +version = "29.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b975ee3a95eaacb611e7b415737a7fa2db4d8ad7b880cc1b97371b04e95c7903" +dependencies = [ + "log", + "sp-core 34.0.0", + "sp-wasm-interface 21.0.0", + "thiserror", +] + +[[package]] +name = "sc-executor" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "963c1ebaf6bd0bc4ab0603c3cd7200ed25230a897a3217928a559fedce6019df" +dependencies = [ + "parity-scale-codec", + "parking_lot", + "sc-executor-common", + "sc-executor-polkavm", + "sc-executor-wasmtime", + "schnellru", + "sp-api", + "sp-core 34.0.0", + "sp-externalities 0.29.0", + "sp-io 38.0.0", + "sp-panic-handler", + "sp-runtime-interface 28.0.0", + "sp-trie 37.0.0", + "sp-version", + "sp-wasm-interface 21.0.0", + "tracing", +] + +[[package]] +name = "sc-executor-common" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3b703a33dcb7cddf19176fdf12294b9a6408125836b0f4afee3e6969e7f190" +dependencies = [ + "polkavm", + "sc-allocator", + "sp-maybe-compressed-blob", + "sp-wasm-interface 21.0.0", + "thiserror", + "wasm-instrument", +] + +[[package]] +name = "sc-executor-polkavm" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26fe58d9cacfab73e5595fa84b80f7bd03efebe54a0574daaeb221a1d1f7ab80" +dependencies = [ + "log", + "polkavm", + "sc-executor-common", + "sp-wasm-interface 21.0.0", +] + +[[package]] +name = "sc-executor-wasmtime" +version = "0.35.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cd498f2f77ec1f861c30804f5bfd796d4afcc8ce44ea1f11bfbe2847551d161" +dependencies = [ + "anyhow", + "cfg-if", + "libc", + "log", + "parking_lot", + "rustix 0.36.17", + "sc-allocator", + "sc-executor-common", + "sp-runtime-interface 28.0.0", + "sp-wasm-interface 21.0.0", + "wasmtime", +] + [[package]] name = "scale-bits" version = "0.6.0" @@ -4298,6 +4634,12 @@ dependencies = [ "autocfg", ] +[[package]] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + [[package]] name = "smallvec" version = "1.13.2" @@ -4453,6 +4795,44 @@ dependencies = [ "sha1", ] +[[package]] +name = "sp-api" +version = "34.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbce492e0482134128b7729ea36f5ef1a9f9b4de2d48ff8dde7b5e464e28ce75" +dependencies = [ + "docify", + "hash-db", + "log", + "parity-scale-codec", + "scale-info", + "sp-api-proc-macro", + "sp-core 34.0.0", + "sp-externalities 0.29.0", + "sp-metadata-ir", + "sp-runtime 39.0.0", + "sp-runtime-interface 28.0.0", + "sp-state-machine 0.43.0", + "sp-trie 37.0.0", + "sp-version", + "thiserror", +] + +[[package]] +name = "sp-api-proc-macro" +version = "20.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9aadf9e97e694f0e343978aa632938c5de309cbcc8afed4136cb71596737278" +dependencies = [ + "Inflector", + "blake2", + "expander", + "proc-macro-crate 3.1.0", + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "sp-application-crypto" version = "33.0.0" @@ -4462,11 +4842,24 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-core", - "sp-io", + "sp-core 31.0.0", + "sp-io 33.0.0", "sp-std", ] +[[package]] +name = "sp-application-crypto" +version = "38.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d8133012faa5f75b2f0b1619d9f720c1424ac477152c143e5f7dbde2fe1a958" +dependencies = [ + "parity-scale-codec", + "scale-info", + "serde", + "sp-core 34.0.0", + "sp-io 38.0.0", +] + [[package]] name = "sp-arithmetic" version = "25.0.0" @@ -4482,6 +4875,22 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "sp-arithmetic" +version = "26.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46d0d0a4c591c421d3231ddd5e27d828618c24456d51445d21a1f79fcee97c23" +dependencies = [ + "docify", + "integer-sqrt", + "num-traits", + "parity-scale-codec", + "scale-info", + "serde", + "sp-std", + "static_assertions", +] + [[package]] name = "sp-core" version = "31.0.0" @@ -4517,12 +4926,59 @@ dependencies = [ "serde", "sp-crypto-hashing", "sp-debug-derive", - "sp-externalities", - "sp-runtime-interface", + "sp-externalities 0.27.0", + "sp-runtime-interface 26.0.0", "sp-std", - "sp-storage", + "sp-storage 20.0.0", "ss58-registry", - "substrate-bip39", + "substrate-bip39 0.5.0", + "thiserror", + "tracing", + "w3f-bls", + "zeroize", +] + +[[package]] +name = "sp-core" +version = "34.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c961a5e33fb2962fa775c044ceba43df9c6f917e2c35d63bfe23738468fa76a7" +dependencies = [ + "array-bytes", + "bitflags 1.3.2", + "blake2", + "bounded-collections", + "bs58", + "dyn-clonable", + "ed25519-zebra 4.0.3", + "futures", + "hash-db", + "hash256-std-hasher", + "impl-serde", + "itertools 0.11.0", + "k256", + "libsecp256k1", + "log", + "merlin", + "parity-bip39", + "parity-scale-codec", + "parking_lot", + "paste", + "primitive-types", + "rand", + "scale-info", + "schnorrkel", + "secp256k1", + "secrecy", + "serde", + "sp-crypto-hashing", + "sp-debug-derive", + "sp-externalities 0.29.0", + "sp-runtime-interface 28.0.0", + "sp-std", + "sp-storage 21.0.0", + "ss58-registry", + "substrate-bip39 0.6.0", "thiserror", "tracing", "w3f-bls", @@ -4543,6 +4999,17 @@ dependencies = [ "twox-hash", ] +[[package]] +name = "sp-crypto-hashing-proc-macro" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85d0f1f1e44bd8617eb2a48203ee854981229e3e79e6f468c7175d5fd37489b" +dependencies = [ + "quote", + "sp-crypto-hashing", + "syn 2.0.60", +] + [[package]] name = "sp-debug-derive" version = "14.0.0" @@ -4563,7 +5030,18 @@ dependencies = [ "environmental", "parity-scale-codec", "sp-std", - "sp-storage", + "sp-storage 20.0.0", +] + +[[package]] +name = "sp-externalities" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a904407d61cb94228c71b55a9d3708e9d6558991f9e83bd42bd91df37a159d30" +dependencies = [ + "environmental", + "parity-scale-codec", + "sp-storage 21.0.0", ] [[package]] @@ -4580,15 +5058,42 @@ dependencies = [ "polkavm-derive 0.9.1", "rustversion", "secp256k1", - "sp-core", + "sp-core 31.0.0", "sp-crypto-hashing", - "sp-externalities", - "sp-keystore", - "sp-runtime-interface", - "sp-state-machine", + "sp-externalities 0.27.0", + "sp-keystore 0.37.0", + "sp-runtime-interface 26.0.0", + "sp-state-machine 0.38.0", "sp-std", - "sp-tracing", - "sp-trie", + "sp-tracing 16.0.0", + "sp-trie 32.0.0", + "tracing", + "tracing-core", +] + +[[package]] +name = "sp-io" +version = "38.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ef7eb561bb4839cc8424ce58c5ea236cbcca83f26fcc0426d8decfe8aa97d4" +dependencies = [ + "bytes", + "docify", + "ed25519-dalek", + "libsecp256k1", + "log", + "parity-scale-codec", + "polkavm-derive 0.9.1", + "rustversion", + "secp256k1", + "sp-core 34.0.0", + "sp-crypto-hashing", + "sp-externalities 0.29.0", + "sp-keystore 0.40.0", + "sp-runtime-interface 28.0.0", + "sp-state-machine 0.43.0", + "sp-tracing 17.0.0", + "sp-trie 37.0.0", "tracing", "tracing-core", ] @@ -4599,8 +5104,8 @@ version = "34.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a07a31da596d705b3a3458d784a897af7fd2f8090de436dc386a112e8ea7f34f" dependencies = [ - "sp-core", - "sp-runtime", + "sp-core 31.0.0", + "sp-runtime 34.0.0", "strum", ] @@ -4612,8 +5117,41 @@ checksum = "bdbab8b61bd61d5f8625a0c75753b5d5a23be55d3445419acd42caf59cf6236b" dependencies = [ "parity-scale-codec", "parking_lot", - "sp-core", - "sp-externalities", + "sp-core 31.0.0", + "sp-externalities 0.27.0", +] + +[[package]] +name = "sp-keystore" +version = "0.40.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0248b4d784cb4a01472276928977121fa39d977a5bb24793b6b15e64b046df42" +dependencies = [ + "parity-scale-codec", + "parking_lot", + "sp-core 34.0.0", + "sp-externalities 0.29.0", +] + +[[package]] +name = "sp-maybe-compressed-blob" +version = "11.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0c768c11afbe698a090386876911da4236af199cd38a5866748df4d8628aeff" +dependencies = [ + "thiserror", + "zstd 0.12.4", +] + +[[package]] +name = "sp-metadata-ir" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a616fa51350b35326682a472ee8e6ba742fdacb18babac38ecd46b3e05ead869" +dependencies = [ + "frame-metadata 16.0.0", + "parity-scale-codec", + "scale-info", ] [[package]] @@ -4644,12 +5182,39 @@ dependencies = [ "scale-info", "serde", "simple-mermaid", - "sp-application-crypto", - "sp-arithmetic", - "sp-core", - "sp-io", + "sp-application-crypto 33.0.0", + "sp-arithmetic 25.0.0", + "sp-core 31.0.0", + "sp-io 33.0.0", "sp-std", - "sp-weights", + "sp-weights 30.0.0", +] + +[[package]] +name = "sp-runtime" +version = "39.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5641385c2cd8e2252aacf35e0aff2f236331dfaea8dc11c5a4ec6bb36544450" +dependencies = [ + "docify", + "either", + "hash256-std-hasher", + "impl-trait-for-tuples", + "log", + "num-traits", + "parity-scale-codec", + "paste", + "rand", + "scale-info", + "serde", + "simple-mermaid", + "sp-application-crypto 38.0.0", + "sp-arithmetic 26.0.0", + "sp-core 34.0.0", + "sp-io 38.0.0", + "sp-std", + "sp-weights 31.0.0", + "tracing", ] [[package]] @@ -4663,12 +5228,32 @@ dependencies = [ "parity-scale-codec", "polkavm-derive 0.8.0", "primitive-types", - "sp-externalities", + "sp-externalities 0.27.0", "sp-runtime-interface-proc-macro", "sp-std", - "sp-storage", - "sp-tracing", - "sp-wasm-interface", + "sp-storage 20.0.0", + "sp-tracing 16.0.0", + "sp-wasm-interface 20.0.0", + "static_assertions", +] + +[[package]] +name = "sp-runtime-interface" +version = "28.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985eb981f40c689c6a0012c937b68ed58dabb4341d06f2dfe4dfd5ed72fa4017" +dependencies = [ + "bytes", + "impl-trait-for-tuples", + "parity-scale-codec", + "polkavm-derive 0.9.1", + "primitive-types", + "sp-externalities 0.29.0", + "sp-runtime-interface-proc-macro", + "sp-std", + "sp-storage 21.0.0", + "sp-tracing 17.0.0", + "sp-wasm-interface 21.0.0", "static_assertions", ] @@ -4698,14 +5283,35 @@ dependencies = [ "parking_lot", "rand", "smallvec", - "sp-core", - "sp-externalities", + "sp-core 31.0.0", + "sp-externalities 0.27.0", "sp-panic-handler", "sp-std", - "sp-trie", + "sp-trie 32.0.0", "thiserror", "tracing", - "trie-db", + "trie-db 0.28.0", +] + +[[package]] +name = "sp-state-machine" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "930104d6ae882626e8880d9b1578da9300655d337a3ffb45e130c608b6c89660" +dependencies = [ + "hash-db", + "log", + "parity-scale-codec", + "parking_lot", + "rand", + "smallvec", + "sp-core 34.0.0", + "sp-externalities 0.29.0", + "sp-panic-handler", + "sp-trie 37.0.0", + "thiserror", + "tracing", + "trie-db 0.29.1", ] [[package]] @@ -4728,6 +5334,19 @@ dependencies = [ "sp-std", ] +[[package]] +name = "sp-storage" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99c82989b3a4979a7e1ad848aad9f5d0b4388f1f454cc131766526601ab9e8f8" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "ref-cast", + "serde", + "sp-debug-derive", +] + [[package]] name = "sp-tracing" version = "16.0.0" @@ -4741,6 +5360,18 @@ dependencies = [ "tracing-subscriber 0.2.25", ] +[[package]] +name = "sp-tracing" +version = "17.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b3decf116db9f1dfaf1f1597096b043d0e12c952d3bcdc018c6d6b77deec7e" +dependencies = [ + "parity-scale-codec", + "tracing", + "tracing-core", + "tracing-subscriber 0.2.25", +] + [[package]] name = "sp-trie" version = "32.0.0" @@ -4757,15 +5388,69 @@ dependencies = [ "rand", "scale-info", "schnellru", - "sp-core", - "sp-externalities", + "sp-core 31.0.0", + "sp-externalities 0.27.0", "sp-std", "thiserror", "tracing", - "trie-db", + "trie-db 0.28.0", "trie-root", ] +[[package]] +name = "sp-trie" +version = "37.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6282aef9f4b6ecd95a67a45bcdb67a71f4a4155c09a53c10add4ffe823db18cd" +dependencies = [ + "ahash 0.8.11", + "hash-db", + "lazy_static", + "memory-db", + "nohash-hasher", + "parity-scale-codec", + "parking_lot", + "rand", + "scale-info", + "schnellru", + "sp-core 34.0.0", + "sp-externalities 0.29.0", + "thiserror", + "tracing", + "trie-db 0.29.1", + "trie-root", +] + +[[package]] +name = "sp-version" +version = "37.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d521a405707b5be561367cd3d442ff67588993de24062ce3adefcf8437ee9fe1" +dependencies = [ + "impl-serde", + "parity-scale-codec", + "parity-wasm", + "scale-info", + "serde", + "sp-crypto-hashing-proc-macro", + "sp-runtime 39.0.0", + "sp-std", + "sp-version-proc-macro", + "thiserror", +] + +[[package]] +name = "sp-version-proc-macro" +version = "14.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aee8f6730641a65fcf0c8f9b1e448af4b3bb083d08058b47528188bccc7b7a7" +dependencies = [ + "parity-scale-codec", + "proc-macro2", + "quote", + "syn 2.0.60", +] + [[package]] name = "sp-wasm-interface" version = "20.0.0" @@ -4780,6 +5465,19 @@ dependencies = [ "wasmtime", ] +[[package]] +name = "sp-wasm-interface" +version = "21.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b04b919e150b4736d85089d49327eab65507deb1485eec929af69daa2278eb3" +dependencies = [ + "anyhow", + "impl-trait-for-tuples", + "log", + "parity-scale-codec", + "wasmtime", +] + [[package]] name = "sp-weights" version = "30.0.0" @@ -4791,11 +5489,26 @@ dependencies = [ "scale-info", "serde", "smallvec", - "sp-arithmetic", + "sp-arithmetic 25.0.0", "sp-debug-derive", "sp-std", ] +[[package]] +name = "sp-weights" +version = "31.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93cdaf72a1dad537bbb130ba4d47307ebe5170405280ed1aa31fa712718a400e" +dependencies = [ + "bounded-collections", + "parity-scale-codec", + "scale-info", + "serde", + "smallvec", + "sp-arithmetic 26.0.0", + "sp-debug-derive", +] + [[package]] name = "spin" version = "0.9.8" @@ -4895,6 +5608,19 @@ dependencies = [ "zeroize", ] +[[package]] +name = "substrate-bip39" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca58ffd742f693dc13d69bdbb2e642ae239e0053f6aab3b104252892f856700a" +dependencies = [ + "hmac 0.12.1", + "pbkdf2", + "schnorrkel", + "sha2 0.10.8", + "zeroize", +] + [[package]] name = "substrate-runner" version = "0.37.0" @@ -4933,10 +5659,10 @@ dependencies = [ "scale-value", "serde", "serde_json", - "sp-core", + "sp-core 31.0.0", "sp-crypto-hashing", "sp-keyring", - "sp-runtime", + "sp-runtime 34.0.0", "subxt-core", "subxt-lightclient", "subxt-macro", @@ -5024,10 +5750,10 @@ dependencies = [ "scale-value", "serde", "serde_json", - "sp-core", + "sp-core 31.0.0", "sp-crypto-hashing", "sp-keyring", - "sp-runtime", + "sp-runtime 34.0.0", "subxt-macro", "subxt-metadata", "subxt-signer", @@ -5067,7 +5793,12 @@ dependencies = [ "parity-scale-codec", "proc-macro-error", "quote", + "sc-executor", + "sc-executor-common", "scale-typegen", + "sp-io 38.0.0", + "sp-maybe-compressed-blob", + "sp-state-machine 0.43.0", "subxt-codegen", "syn 2.0.60", ] @@ -5111,7 +5842,7 @@ dependencies = [ "serde", "serde_json", "sha2 0.10.8", - "sp-core", + "sp-core 31.0.0", "sp-crypto-hashing", "sp-keyring", "subxt-core", @@ -5331,6 +6062,15 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + [[package]] name = "toml" version = "0.8.12" @@ -5363,17 +6103,6 @@ dependencies = [ "winnow 0.5.40", ] -[[package]] -name = "toml_edit" -version = "0.20.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70f427fce4d84c72b5b732388bf4a9f4531b53f74e2887e3ecb2481f68f66d81" -dependencies = [ - "indexmap 2.2.6", - "toml_datetime", - "winnow 0.5.40", -] - [[package]] name = "toml_edit" version = "0.21.1" @@ -5550,6 +6279,18 @@ dependencies = [ "smallvec", ] +[[package]] +name = "trie-db" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c992b4f40c234a074d48a757efeabb1a6be88af84c0c23f7ca158950cb0ae7f" +dependencies = [ + "hash-db", + "log", + "rustc-hex", + "smallvec", +] + [[package]] name = "trie-root" version = "0.18.0" @@ -5576,7 +6317,7 @@ dependencies = [ "serde_derive", "serde_json", "termcolor", - "toml", + "toml 0.8.12", ] [[package]] @@ -5869,6 +6610,15 @@ version = "0.2.93" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" +[[package]] +name = "wasm-instrument" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a47ecb37b9734d1085eaa5ae1a81e60801fd8c28d4cabdd8aedb982021918bc" +dependencies = [ + "parity-wasm", +] + [[package]] name = "wasmi" version = "0.31.2" @@ -5935,9 +6685,12 @@ dependencies = [ "once_cell", "paste", "psm", + "rayon", "serde", "target-lexicon", "wasmparser", + "wasmtime-cache", + "wasmtime-cranelift", "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", @@ -5953,6 +6706,63 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "wasmtime-cache" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c86437fa68626fe896e5afc69234bb2b5894949083586535f200385adfd71213" +dependencies = [ + "anyhow", + "base64 0.21.7", + "bincode", + "directories-next", + "file-per-thread-logger", + "log", + "rustix 0.36.17", + "serde", + "sha2 0.10.8", + "toml 0.5.11", + "windows-sys 0.45.0", + "zstd 0.11.2+zstd.1.5.2", +] + +[[package]] +name = "wasmtime-cranelift" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1cefde0cce8cb700b1b21b6298a3837dba46521affd7b8c38a9ee2c869eee04" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.27.3", + "log", + "object 0.30.4", + "target-lexicon", + "thiserror", + "wasmparser", + "wasmtime-cranelift-shared", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "8.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd041e382ef5aea1b9fc78442394f1a4f6d676ce457e7076ca4cb3f397882f8b" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-native", + "gimli 0.27.3", + "object 0.30.4", + "target-lexicon", + "wasmtime-environ", +] + [[package]] name = "wasmtime-environ" version = "8.0.1" @@ -5990,6 +6800,7 @@ dependencies = [ "serde", "target-lexicon", "wasmtime-environ", + "wasmtime-jit-debug", "wasmtime-jit-icache-coherence", "wasmtime-runtime", "windows-sys 0.45.0", @@ -6001,7 +6812,9 @@ version = "8.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6e0554b84c15a27d76281d06838aed94e13a77d7bf604bbbaf548aa20eb93846" dependencies = [ + "object 0.30.4", "once_cell", + "rustix 0.36.17", ] [[package]] @@ -6418,3 +7231,51 @@ dependencies = [ "quote", "syn 2.0.60", ] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe 5.0.2+zstd.1.5.2", +] + +[[package]] +name = "zstd" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a27595e173641171fc74a1232b7b1c7a7cb6e18222c11e9dfb9888fa424c53c" +dependencies = [ + "zstd-safe 6.0.6", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-safe" +version = "6.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee98ffd0b48ee95e6c5168188e44a54550b1564d9d530ee21d5f0eaed1069581" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.13+zstd.1.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38ff0f21cfee8f97d94cef41359e0c89aa6113028ab0291aa8ca0038995a95aa" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/Cargo.toml b/Cargo.toml index f5e555b0db..cbde3e96a3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -116,6 +116,8 @@ which = "5.0.0" strip-ansi-escapes = "0.2.0" proptest = "1.5.0" hex-literal = "0.4.1" +sc-executor = "0.40.0" +sc-executor-common = "0.35.0" # Light client support: smoldot = { version = "0.16.0", default-features = false } @@ -140,6 +142,9 @@ sp-core = { version = "31.0.0", default-features = false } sp-crypto-hashing = { version = "0.1.0", default-features = false } sp-runtime = "34.0.0" sp-keyring = "34.0.0" +sp-maybe-compressed-blob = "11.0.0" +sp-state-machine = "0.43.0" +sp-io = "38.0.0" # Subxt workspace crates: subxt = { version = "0.37.0", path = "subxt", default-features = false } @@ -167,6 +172,7 @@ base64 = { version = "0.22.1", default-features = false } scrypt = { version = "0.11.0", default-features = false } crypto_secretbox = { version = "0.1.1", default-features = false } + [profile.dev.package.smoldot-light] opt-level = 2 [profile.test.package.smoldot-light] diff --git a/artifacts/westend_runtime.compact.compressed.wasm b/artifacts/westend_runtime.compact.compressed.wasm new file mode 100644 index 0000000000000000000000000000000000000000..dd2b35547da245c97727b48cac4a24c0e4e80733 GIT binary patch literal 1981877 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℘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%0DL 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�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

%wpdsW}s;F>1-;}K~u^T(v@I~XL%Q} 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

04QD-FKxApA=LD_{ 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 z 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

  • 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

    RA^*ZV{B4o%ubROn@-GGxF)0?1xmHI z7PYS$sJ$3<(Y5rQE2*OH-60;%HEjE zxU_#;9OQvo_FqcHFJ46+h_xgx<1$3axXWU}h@XeJJajJ&N)TWefCN& zUr~w6x<{s9`UfcEo!4-=@4n*Ea-Bz)`=k9dBw3djSj694$Zbi;Z3Q7$+5RODNGNe3 zx3!%jO>-d*Fv%~rsX^7yD9U&z$hFyLY6VOepnRf5@k)0w>1=V;MGyKc_mgp)T(|Vu z?^}SH-1*=)Qy2RLQ~5t>G7&b%xv5qZCw0p*JhSxF1-$XZpMUNV-XJUJ(pQmDmX`nF z$@eAvZpA5YwkgTZ5qTeg?`MGk{CACbD)$4fAp91V>>_+oyjjbhieHEP zG9}ps?e;3{$gt;wh%i$NacyrJUli@Yb;a`}#q0Kh==m>#eWAb7x>`E)|)gZNi>vNz4DCgBL|g#h)TzTTO-Tn?&kD8$hExfSLvnpQZscCK

    nZMBGwz}MQXJ%IGe#iWXQ8sl+ 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≫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

    @u1Mar&_M<%5fHWHeE>d8KVQ2&ZG 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

    lMcXRO^u~Pm* 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%0D(ItTFZq9-+3;a?l{K<-@Akh*7?<3FqkR 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

    y9l@BVy|gt!>@^;83zUx8%Y|0jG{Lv20QO@(biX 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�f-Ra|K$x^VNm2U5EA_I{+dy1MnO5o;2BM%vTqtaGroJCGe$KuK zo4ForP8DIJ-u1)AdmLc%UxeR1*pxm#(+`_-1=!GsGHjZ!6gXHYSzLanvhDmD&FtT1 zIv2fI0(+nefgb8`{fQg4?8tWdoT-uEmq0fQUKinBV(6>nl) ZJWXVwY7?Rww*1U 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≈T`62=h~{Im3oOCXc)LScQ<_CuNJT zM$@DLJNO~!>I6_cN?9^Hx^CX2Qg$#*RQ=9WuJSc=b-ZI!z4e;t)p>%z?L$R^KxP(Y zDPsu<>P(cM>1k^|*YXX^6-X1OVK0xhox1oHk%Ogm>!+k^1@z_MbQ>FnuZjMwONNw_ zNoF3dQQR4FVrc!v8~T0PgmzjVS98sK{6{uLBcT8Y=(9cLi1{QW+5;p0UAkdD3DK16 z)}`N>Jk#w+pez{%MwiotWe$tFmvx3M?coShntZ_%HuZR;8YrK&zaF}&^v#lNdB>`AmdTmK&NqIp8(BZi)=5YG$@Z218 zIHTC%xkZM}us-Ipzd9Q-kV9tq*yZs~j6HEm|A{o)qx8==YXw67K@p97M9YTas1`@D z>{V2fQ!OULAmXPIM)?gL>uPqXKATIT#zdU2=lO`;kEw@Di9Xj!CfaoXku;Vl zcKBWfsY9&wUKJ6(QrTU?R1_X!z9_?+hT1T&{?NE3h>N$M!L zV|)~~og%HBW?{q4o%J@kRQU>*JGz zyDnfpl0KO*eLV@U#NOh5bCBx1wjo6Z$pH}5t-}qk;O<4lCUdx<7Tmp!Is8I(O>l(9 zMmJq=tY;^i_$Zhyu0l5&uuo*piN^7A%Q zSU@=!S{q4_A3*MTZ={eOfDZ#JpUDM=W5)kc>zh)cd!C@=?PdpQv?918ZTfJW%gAq{f6sKo*rS3c7PG!}lm0E+G(hVk5P*ic?qHuaFq%VTx{kxZJP zCzMx47peS6jl8Z?U(@7)XD&`Ah%0Mb<@g1ciM(zT z3nI@9HV-nIe_X?03&qlXREaP_LsJj_8_Kp3{GABPz6J*b8|f*Qep>u|nNXvQ45ad4 zl4_)1D8Z!qj0*P`KvCh-sG9kPYn6}IP2K)yLrbKRX5&b7eE^8LHtpNriM9D}jBB=K zX+F2vHa0~c!<*xbh+l!iNNfYhr1?a>ZNuz%9fupVU8v(@m!_KL?nv5Z>cvX#tK* zU1S_eDcZz!{H-i)od4H?LsG(~2aoy2Uy5^a!k|8%sIJDp+Tl=lm zkqv|_1B~qDG@Fs#VwmP;Nj9?oNev+l$Vu5Zj1rA*n*fHA){Py7*{Hy1f=7+`59xUD z*tqUU>!ALjr&a*vxs{4~=hvx8aPmX$33GYv84(iVo)IBn&xjDP|K!$L6>LbRoE_=_ zth!TeUv;+(N8PX`)y|OOFV*lDId9ENM@b``iC`~C_)CH`S9o>^C7?W%!f=XHXlmUbkB!S;FmienpZ8K4~yAxvH7qi6+F*e zr03Bv4<2J4l!Q(=aRO0@_OWRNHq1+xFq$;mr5yZaw#)Pv+-vPAW|c%o-4S9D0E^>f zT{8w!%z_>af>Ir#ts@9bY_NrP9A|ZE?P~aHOAy=TG#GBdWtY2fROl>u?Tu`_BRj(h8HMm}sy#o+f3fd|HjarN_ zdHJzU5FcFvuwX_8x#L{+eOk!pp|F5DRZru#hIAy#((v{1%RLmJ*jj6(B)5{KNyjWC zz>=Eh08^Q4DLY^S_dnDX5pX!HF9jCFU4aG44Hi^sO_{@#KFq(X4s~Z&CI7k9+`O%) z!rmITd9Eb-ZTFfHQ+Wd-bJujGjy~JOqPH7cQku*46=Mq_K>~yM6vMd8fLg&9R&s7Y zv1-l?sBSe&8JwPon0BjRm^OlX3@B5xWG6B;tKnFv*(OF*P_j}3OwgHvliicBF7hzv)E&eHRg`HIlF%o}(4h6qrC6wg98yRJA(x&q41Xo-OWTI3~W zviv3d7F-`U(@4(Fy&g;;EMZLppnHr%rUe7noF{6@TRvh&pPGpy#9OQg%Nu3oqXyJm zni3S8_s2XY)^sL9GCF5oDQP%4UuSSG8#WYG(Ose&qp|=v$!dLb7|Mrur_VLou&b1N9|`E$3C% zHaJ(P+o5bSWdWJH)u0sy+{#CsB}^k4Wf0U>$IBW784MxBjWl^?dC^;vP5ni@TQ{Z` zO6$3>V8^t6w55cas3(nhKpixEg2J7wR902dFY5_uvSdPQ!_VtsP zMKb=3wP8t8(hvEN=^{aNV?qw1j08w-g#@Cjk-%KD8hp)S%uqOtnNi&#RM(V%X@Jel z%AXV8uVChh({(6@bWT>mIAMk}Kd;}MHi;+F621HtOr@{m$yw?DbKNA0A#e)Ur1=a? z>nKJ@F%*RU`)@}Z>V>Zdp+x+8XJ*~^OB4B{X_(UO+s57(EpCcjt3N(*vw zL{v9c)e~Q$L+yS`be}!=X*Q;vE||O$n?)zn9iL(?O_J!w*2lhtm}=i&U@5szIslRM zO$q2DQ^%GZT0G?X#KMk!J(BB`aLWqk1~O{~*{Us&qLHDdw(f|TlYI)SZWWW3Od&+L z9ijxEW3|J^2jnd zjWAMisQcih&01mm!aAys0Sd+nbm>)ug zOa2x@2&`S~Gnt<>XxW^w_1O#

    gn_rQ>txZz&N<~1{jtt$Nzs$$Fr%X%@P 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

    ZVOC6`hB}tx87x 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

    9ymP zsY+9fKDUIuu9hggZ#&WFrvdlLqN&x`JcW`{OOOR zOyZK4N^4WghUY>rrznncx@M|r7=yU@0HXldxI)}As)86v?Q9Aq7po+zlYd{j?gyP0 zl5QcMMUB7{AljxHyd0-PM^*pcNxFA&;<*RDaPil#-@I+L#14V*H&^^vE(UtSG8?dn+fnBJ zgQP*zm`SAyDE8?1!suy9QV?+|^x~2Fc@Y?^*5=~y$|{FhMyQ6om4ufcDzb5v&=rBR zSicE!lGA9vhaLNMzr}7vL@ICKvcgF`%$+v=(T&xlD4&OJ3R4tDkU#c$@(*&T7wU#t zEI!4cvGqfvYkJJ6E#jEgnu{(|NdK(eA|&x+_8K`>uHd#x{yRG{%!!RRDXYPb>QOYU z9IrSUJ-o62Due!@sLEShfCK>C5nE?49}3J4uPo1NCvYhPTasV*g=wB|R!n)67C^BJ zuC)u2b}&GU)@iW4N1rTV0zRGuJ{}TRtLyUB9pr0CK-Kk6pT2R&^!Km7m92=$7|EwT z2*?&HTK~=2E1vq~Z-4o-^FJUCQ(gbimml4A!8xCK@o}G@N?(%)g;pnivkmLNbI&(E za>soid-T637a*}oQ$`9_h#V!* z40R*m>oWZ=+-62OjA5N$7Z|!Ue8l(@-59|iS2}Yn@7ErjYbvkHc-G1a)oKZsNyy}H z^gEvMH85`rX|E28;pta_=d-6S`tH4tp7OzK!KM&>r)bL|`j&H_yYtk0uX*ar9?|7X zMf)JyU#(vtx_rYQCZ;bMOb5y`Q%$*(K<`4xdAqg1hw_W;^WVd>DvjM|7=gH~Cu>Rz z)fKcXeUZ(moF z5g%Kp4@^2HS$+gNrfESvcjNn@F)QC*%I&3v#xE|2`6>AL5HpnZMCq)Cw>MVD4n=NC z#n9BGV+|EN~5&(}!?vLBiAjYjNm%&pB{4U?}V=$O6&Nuyp z&&DUjvMQsWT|^7LfE6oy7_X~OE>@HzOK&mKh3k<>hxR@%4uPVn$t25 z)$)WEwLH&rH~ZyT5??IO7V%Zp@+`?l-NEWKl0JB=lSS3T`aJc*XTI}^>ppeI(N1oE z`oRakfAgtlf9LN_EQjSe+_pT2-I}@mbKeZug+jGv&N$=#ux6eQGAk)9&tWZ3Yumq< z#-l*aLJh$GrGw8+DFyUsMfWNN~}8$>zMXo zEpfxTGY$*qvS#B;aab=%+&K;6$KSm7?1w&j^V5IgX8fG5KXT7EwqN?K?czQ>m5c*?lOxrgV6ms5~#h7N!dhxVxopI{NGB>85+%fZ|Z@l!w$4==p zraDK31T|j&N=9We@Ks|9J6@RD6-C|a+?Y;}v*&q_h^oYRB!61CP7tTmGFc#gz{S!AKsGgi_awWaETd=I85!lwpf1bSE1Q^Bo1n4WCjnPeg9=Y zz4{Bky2&$xoj-rzdrv<8k!!AWL?!jci)vtN5!J*0CPnqDF$}lee8#E2|Nf7ELg#!j z!Ix(kKJ4^nNlomPE6)Dq)UTeq`wVPMk&3K&&GH|PVffUmFbvCPwGi!XhW#q0(on*z zcs!Ra_CHKSzZ!!6^+g|_`PwgkbM13TMIrjPk*|E`=4*fV?3vpqpY>w>iVJqm?z;cH zGybax))4(j3qf!D%B4?kz5dp(9`=Vy(60v1&z^PPu3tU;98_*6*YRi}9=NQXRwa?Lf%0AiT?Pd8ovb}i!WKC!( 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%0At^@C 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%0Du%KC@QJmO4KC7HQDrl$XlU7}j#UUcxDuo$h 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%0AW;?E9C|)`>YOq#3F1sxXBGctE#Znv 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%0Ay4+jATrn64a<5qWNE5+qWwHTdjLv#Oav_h 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 z zrI-O4T*UD5P*Q#`Oj!a!(VyIubwf4@i$E3yDc)N=69k!n@5M7%qNuF!oPgYPy(WCG z*L$`579j(}&B2B(hu*)jdV6bZSBW9;gt7TWMegi4> z8_gRTefL+MWnWRZ zNE56NO5CwssHUm3(U(U#(f^bA5W7B^j}6nc`;$Jf(kFogtf%p@m<^S|p}wJ%{aD5z z(ZskDnBLm#^`H9O_V-Dhs2zy9b=KmORxxBUt^Y7IW}#<`y! zJ@ojmF5Px44a!8NSJtF8uf_E4aBq6??hkz8-uGO(_wE1WpLpZ-x9$1F>-JsyKab@L z-n58oUb~(2(Qholjv&a&I>`ZOru^ke9!p<_mzIH5=dlbdUd~c|^83H|7Ln_hs691U z0>2t8ga0^NEKh)%EKk7kH3 zxPMoWeTatGr^e2L7sT1V`z)d-<@Sjvp(Ojt*F-8bMTW8RDv*ju7TL1^6K7=B$uQIO zGv~C0V~O;H7F#<0NF`{o-6tTK7K^}_s9SvfNGC6$7D$s-d%P7cyDY0+;nUzSh46uG;>qjJ5)`t#0RD39?u#Y_W zS>qb>a0&DH z0h!13&Y?Po>&5O*llA~b8~IXK-jiZiUSygB?q65ORwTX z)}z$=d6{!`<+!m2H z{IHgyRHeK>Rh=iSIRA>ai27#3$cH5zO&<&W2r3-=5v18+nn*oIN3&>BIheclCkBNM z(}mh>t+v|OBt>l>NL9;W=I^JAVcTihN~kFQAPKt_iO$z(ImwAHKYvS`9AU6Me)j!} z>_FW>j&TNmxCTFrvzsh{hlWw~O4~?-LHbPx(h(yMW{ zn>Ov7Db7db)~q2G4!E^VsIe@cYxubAo}Id4_#BZUK2AcjDiUd|18A3l-eCx#JZBhv6p}M9XpuLUwsp)^&TmIvj%HYzsIz%2Pt*pU zOA|HCV|k)du*S|nPGyXI`aOI+o^g;&IOo)gKNw};>_o7dfiHO4LApWmOo;2dfP&F= zO|-gIn&@NbmB}*e)j^%3Dmac{5pp3=!F#k0HQgd^t$$3brXfv0{SY-90QYE(oCbyJ zeHhTi{!2U~{M`L(Obe|s^8W0X4&3?0cYpMYpAwQYGqbP!?5kh@-e2Ch|9-IbY@Q$6 z_0b>fzw(Vg0$ZWR*>^qg!-w~L^XhBPlSvh53qNw&^iIdw=cNgG20;MLaU_Wd8U!7o ztHM)yJE30OA_J$D==LVNHB0MS^-Y%dEYV8m@rA1{GnIZbx2ts43ruLIl{}wY@M#m5 zJ*sn~P1fPz9UGZW;9^I~XTR(Gbg;%xXZlYX$}6y~4nrOq2j=7pVW2y%`qXww+4wo_ z8X4i;mEzlQ{{eY;t^Yj53)A>6f^{aOUGK|G@4no+rY*Zz&kS7k>>S&u`Een746dnr z>yv3ahn;y{`4<%cqjc>`%TK|nc|m(%c97E>8sVjZ*_Ur^4_uF3Pu$JGY;E%ttJG|u zNummV4nWK1_6~RE`PsI2gqxW>@g*KN^QzH>q}$`hV)ctP8LdiUPY>1E6rFdq)^@r;@Xacebh#PTR3o)+dCIKw-8C7A?f0GdQM5X(=RKDH@Hu#)T-|z%8e5gC{BLcSkJcB{z>n^M_9HLy`HIxjP)S%{vO;^=Yiq z0uO53GDEf^9+_e|hn$G~8fE9GTkcccq}zGluv$y{RG9&_4j7nWZPmu7YH<`q+n6N< zz$_Q14jJetaWvFJ3{~n~&kTzq2D2ULC7QqHBiaR>4YneB#!HtGf5!JnhbZmm&>+q~ zhim6A=XCq&QG?lmT;Una?&cPy2fw@Ywf$@klX5qwD|*~MUD5E+2nS6~Qi>zC9KG@` zzHXT4uxE}96+}`5@QCH0M%i^Y>b$wR6FRCkB!H!_n6l4ztqk)(W_wo|_$0eOF9Yjj z9?&Hn-oQ8q(YN^{Rn0qBZ64i2zfwV)kex6AgWAO<CdP0VR&qS)q4s+~qvor2R4cMY;EJh<=m6{m22u84nodd@Q7-<|l->8#^kmKjSkYR=FRQYHc#8+pRd(9p6kg|+ z&LmAzGIferoFl+2rhIoJ2ec#8Z@C}D0%D1L$=a2Pb9n$nJWq&71su$5^alN(t3RA} z=*u_?KC>5HCsZtE6=2w8NDgaX`dq=d{CB%sXLxFrIdlp7OV&BAL@r5Zbof!JUN| zW^K@CB}cS?|9EA>p|Fh6xrxr%vk?xoldNq+q;F&;)tFLaDtUkTdS^)9`&6!WRB6r{ z@M9B(J@Wn3^d#qFgGxj#qLv-EM^|ujcZYPG3?VhB1ZmLxym`05w3}kO$n};Oh;h9& zwsdja?K6}vb9^nM)zd+zk}IfB0>oZZQhf&`e>pvXn_;$97)=%?9`6cvz+n4 zzcu_@%fFOUJX)fuRjg>in3|d>j+fJZYM?x29{;r)}k& zskPo_8&=p(Q@xS;8$g7Hcw;RioilM&Wf{@e%v@G*iqz;Od~f&?^&3K1n~q#U>qGhT z>1pEXpDx?y_dL2sR~4=dB&n zvL*<1*p@b%^H_^S@cQI%(rVj?Ow2O-JMn#>kyk(;j%eC0b?)p?QlUf(!&14-Jz{x3 zQworRCU?ur%0hi#H&)p6v-yZ=4=|k$AbF4~V_GVN0`n@=m_moKr0l)Dmy}q}LDGF- zNT9K$97m0DZKzO;AGtszn|nd0EpUUv zF)3m~GAU*q&8PXmowPy;Ubr4j#}0(#9q@K{+(wl%^pt8PgjFzuE?KT}2uc0~aZVT~ zsoaBcN}|wcLA9L$GGrThvrJPwh^Csxl+eTeFf;|IjWg*Swx!Sb<&X`{@TlVIStIrPDM_ z%u`M_zW(R&L?^Or9}7;^;Gn?GLB>DR?zpWhomxh|6De}!a=)lmX9|?V=cvMRGGfK@ zgd&JSPMIj>@UfISUCZNxYOC{xH#m$OmDMn82d2XZa*80bB`9Ss5T3>R9<+#wUmPq`;hll)LruUZ}hZm5elCg;+$)se5BL7bzeNnp@I%ge_y2e?Tm*#yT}i@MdG z5V@KJ4l4G~H^2K1iCQ(L^}CBY&0c7?xPW|CG580KtrKZ~hni||il?ryW^0aez+zcCLv!0RE#+^-gOhzH>DjpPyfhuts!MMq!{vipfl6^(P$4Y0-T=MQ#2kY@rKJmq#jMy?hg zvHN2f45y}a?EYc1`{A4P-x6b4$~Ah-7clYHCuwU^JP#L!2mua+j{v>_Q%ol@Lhmwb z7#K~qb&wCFP0|sqIAC$tZ)~juH~>=!af%S4AylVqqCkpM3ZwwG`t`&kg&m?aeoRQg z$%i{^hCvLW@c2CROe^W+MwWb7!!f-l8~clj%&(x%n)9HVo^n>aGf>_RT~CH>aTVWf zzWM#o6^9|iBNJx{I}-5&einTjr3Stcs1@cW3RU7+Bi-gZY|WGwwkNG&wX_4$v}A?W zs!dHGgEpauGNQyF!6d{}i(?MKPQ0!pv=t&Waz2if5)&B8*5zlMn+zIaxma8o{;ZH` zexK+(8#5g#p82twKNtftURJQu=G}%rLj{NBhAxQpOMLn8xCx&d5(3(g#n-(HV&|a@ z?`>X2H@qHvJ(OuR;9_;U25FpuTov0!><&q)i%aPsIQ#YdcAZD#Y(iR;`j*&GU8j0F z9t>%LnMta_b^bAnh}u;hL)|)2-wZ*FN3C!>4`-~c!j)g|SA}=Q&!hrCuLy9LF}4Pb zpIrP*^95t;d~5;EI4s6yT)H9Vd_GwXU~I$bpeT`v2aOahq}{rF)tE3>6T!{T*!1Wt z!bmOCOTrqJPw2>xoZAlzPO@2CG0Hjqa3F5j)`=r-9sknd_`XU*k?fg5w)Erp^d6{) zs#zuI^%GPS)Y?oDT3XLtl(>}zOvJ3yz`DdNco0$#$*w#Ox!cUKOElgW zPlJ}(Ep`K%f=w4KJqdLEV)eW4ED&U(Ss1oikOEU@GWxMtjo%@&)d6!c!j7iT7DH^l z`AUEZdJd%sXv%Ska%eCY00&37PNgGsqRyZM z?}k`Z_#SWS?Z267(LrHBDt)ME$dp!==tF^7u?nbA){2M3n3L^EJR|b6 zI0&IZHG8OtTCmp@ws3c>Iv%BfmXJp&m~rJ%3TU8;QaCKBihJddu9sb55dh!UJ)WzB zx`u#-2SdFBy7q=Fh(cvih&ty5Er`VRqcrK+S4hmCy;1Z%6ap4T6tFO20Sky{>Y6_N z5TT?YWMO2ALd0)6RKzUci|y7L6hWZm@whpw%(1+kM&{hqjRhmZf@BhvyUGV@U?ebm zBS!7w#yk`BK$QrE0&K?r_pi_4Pd3$R>M zkU_FuhRen%WrOW0*U}3#tAFIu9Ri`mWpP0=1u~M6)FArc-w?-gH{wXImjY_c&NV&j zQl`lQVcJ?uV@8BjJ0lep8w8bX@ z_x67QHEc2DGsA8%BgE0Qh-RP{3c|IeK!O0q z7VAPiX;r3J8v04U5mp7=qIZh*8L5#)tpx;)n>wlN8nDllH`EF>JV22IP4S_AsHbt> z9h;6a0wc8H=4_fC42{Kc1QX;J4M-iQbR=z%`S7J;$lA+P&Gr$)i&@tEr5{A1M)wsF z*Qy}8wrU|sJQd~=Pm~Ls&96<-t;swngtz?A7mPn@-BNRbc2f#OK*eKxmK=e25!KpTY5@}!$o}WeZ-sA&A*Zgw)Hn~Zp2g`ktkA?yB zfy17=+BQ&Hz2-g*R$b9souDS_9vSc+K02TtK6e!MZy)tuOtnTtuxL;>C>{d&gP1dd z9TLIb(uZIbvA&hMyPSIPLd-%~J4BGsy}7Cif;CbOBzrd`XC!+=%}86!*`5QbLn30u zW;ksZ+3)oa>=LQ|Z)e4q>1yF=Zm3CI$WY70g)tFmDN`#FX$+?M*eijHKz2iokqU_< z&25;$kT7b2Ry6Jf)w1JIjtgp8N-Yy(E_gLPJa)wl-9qfvn1cy&VKxlFkp(Essa-(` zXcVU`1D^F@w}tEI-2`uhS;B5%2!dv<=_OXI_Z0zPZmf~ETtw`iKk$b6my&i%ywR{i zU2ubU`&|ZlO@((sJ;nVsEq54ZGk@mTvGL&!nQl)E?;kZ+=Dx&M*fHEi3lCY@UN2ke zW#6~5-Cj23We-}}HD0#L%O0>YVT1*Sw^v)SI=wS#pT5z&tl4h323b?}t!ubl>9@PM zo$}kA+^+K5?cA=m+w^o|(*oA=reN0zm{VH<;^6>6rUK>oF|;+U5DMi7-BLJE-Hwmi5{bVjUYRA5T(VT3@+^Q`2fGaRoxE+n9X! zt~(w&yN2z7d5WOg=_$+5lIi}2FwisS4Ky9qPxDWj z2lMt78$b3YiFSP!$0u!%N-_I*d9o<80O@SK+Q0ANZppLxFmCeKOOoDqI>@w%GhMzBI21YsTgld$S)>k~f7Prn`Qy zb2WYMBhJ6l8%+rv{{atR{sYw&Eey+dHf$eIKQ@ssfgTyE_0hTL22oH-wo#GLsD%bC zRz|U^YNvwxQLzi*0S9EgctDm7`Gf6T(zNvZN;dHqmHO;p$l>LqXVb+xNybX!%7pFo zVT;Z|wg*(aJnpq-DqY(H$oSB;J>U$UOWOn1@mSg(u$p0Dg;((0vZUbK11hEM0SX3^ zNhDtj=%DQZT(mu4Qt08v5B|N}@Q!ushBs_dhWBO~zr*eAP28eCox>$q+cVr^@F*`u zudU5EWKD12(z`ui+JDkeUICh79SbA^x*t(V#&VPTP5q1xp5Oe5FrCpwPfk19L!g$TMNTc8`GF3n5y-A7m}O(JJ)jU#9}} zV-?3K06JA24p8GzdMy+zaiE=_;-h?Q!`B!c|VzZO5h26DUr zGq@e?#tY7{iCQontqf~>hHos4Lay?_^KP^p;)bf-kOMFVxf?=~@m|pO0H(tv-}NdH zNHfP?4r?jsk@ z_dfwao5L3+iRIEv2Q}Vp^7DUmvfh;Qd*vjQf(hDGx%V0&!D#kjzk(xo*xdv6cZg?{ zO)vVU6|I0mMxYQwgI~A|qNt$WvgCM=_2lx!sJVoXyR3b4&@W>iuhCoc=5YZg-c77e z(o8Osxt$q!f}^bwp-l>e+OAAx4JeYsN4kl!ktE@nIVTMq^i94Od7pByNkX#RU;c z$e^bC*Y*l|D?+-7bT9KknrwB9sJ9{p39}qxh@^+khuCn~TFK}zRcvSe zu?f(MhC{z6vIPWarBEf`W%Bttblt<4Mk^p^&iSj$2F8?XkQ389|~%Z4JDp&YJuk$ zCvUSrX zGA8t+mfPZt9LlFid6C(P=(OxHL4qos3`>E^Bab@P^TA#6W#?K~rthnThP?{%6~vx0SS}YGV?R(f2gcg>|%%6+2}3 zR~kQDaqL3Ug{C#s#!XVm2rq(@IfcnXtl8=D5`!q+I@Te1?6O{Yx)k@CheIQd8GUrD zQSlnaX;=i1MfQRwMwfvyFk_rIf#^g1g>mSwM;kKZG!*SUFd~`A9=3tZQ;CBmE~5*- zWw+7wn7uMcJ3GvPbiZY8pZB%6Dqs!sFN>?7l8D}v#%QYtMoKvsbL3pmWyx4f-CaQI zkKDr4X8B^Ud(_{Ioa|l1CDxH6`XYmsg;^T!2dyp9NFOVw|9H*9%;$8O7N!kn@$s@) zp~)?c_h#$kJXia1jrVqIORwJDfkJN8^&jtWd47k)IF>WN`P$2Z^XqFb-Hwn0*2~@* zUXm_tL?zz7FkLRP{DR6<2xGkZ0gXAKLUgq-nj8Gq5> zG|mC+?ut)%Yi%jjGpL%(NA^!rH8G&Ggg}I^d7+ zuQNR-wo!&OFRtT8dqq)OOkO#(WA6WF@BO3gs;WHSz4tli-gAE>*$F{|p{n+|MR(s+ zlSk~Llaw&tyZb)df>HKpst3bC*Q?Q;KOArPqOYI$9R29glw34GP?VskQDbo}sUj*! z1k|XMUVeyCq6R^Yig-c5C{!60HI`|4pYL32@4fap=O#Dg1_Bi$_v}6Q-s{JlbIm!| zTyxFk5gJf+9$l{U=8=xKB4%bzb&ZND)V1&O7p<8~yG4;VPo9k~*B$dm+T~)cX3j3- zdFtx&x2((Ev4GDemFp1!N7`k2bV#WxrBy~o#3QFLrZg4PA6-HC^q2Caj7%NEpg4>* z@zMyZpMt_@N8Br&MvfiQVE&&G!mDV<#$3^kk)jWX(f`f@}X%J#0iXynb$oC1Fw_fp`D_?c0F z!=n3<;IPH@CqYkX$2SeC7^a)G8EIs`kwd?J?=xARnd)6>GP_+vx@YaRE+-afqJ#K2 zvjI2VPPwT#;b#qEQ}?SsYcffj6z z&T5`F)?P_w43fH{@;I)qxf#|!`|?e5e%PE`e>vFzT9Z@B`RoEFp}q8SbF!`BB6xfA zrcO&)Ju*sej4BiTVH@pm;hL_-bT^%$RkR!hU2D5+fx8*Nz*MEHBFb@p)On+ z|A$3*#yWE9)iykE2=5dpxmMa=z9B$eRztlcES|%c)TRHI^eea0M>m?=XASzHkiN{1 z;(Y4eGgCxtxZz9@aekRWntp&Uhu09zwGAmFzv;iT<&Z9;6Gk4a*hBU@ukM5Q1Xz>`QBO-A)k9V{Yl?#q`)^0&UTa@Y%IXc)GM(iopmB@lI zasn#DnafCNKsG*(0xS=xFd*kbE&^EQu54t(_D!l)v{5pMy{;4UJlohI@K)~b#o`_6 z@wxcPXT}SQUA0B3!6j@h-AksI#n}>X^N{T?8sjtxHXtiFU?~Npxy~?HmZg@<@Fe9j z)ENfLv$Uv#e#U%pQfImLMyk1#Th*~#OaIHWWnhtF{ILMMK)s|hT%vS_{2`s;5}(d+ zi3^Cp4COG3BwH$ZyfjNmB^abLOo^(%veLh7nOdz}4`6ADt`{>&1g;~8$5H^)idDK) zR2*9jc4#eiYwOKoa?~$g)i`hLvz7n6Y#AS}$aGEVnbo?4!xS>B&ecRRO)8}KE-yBeXwWFpiyHXRnIWL7xiP&= zM^9OVOq*UpOg`cCJ#AQ}^hq|PW~xN{9qn||MKsK9E(O=4I z=%9$CBvXt4?If+ABNXXmR|Q~uyzmySq}c4%&*MCrs;VaHDXi_`A} zPn>6pC$^uG0!GIywG3D7PD1aK^t<+YlFtk)>t`8ZV?H44!q}IM(xLipJj%Z4CJXKB z&}H5pi_*{Cqh|KLG@mX$8FZxH#eWE%%%h9{xX@i3rc3Ewv!3YfSOov6zhYB<(V$(N zI&wW^E0)%(c(eSd1I-RQ8S06nJ)S2+UwB4XA`VY00g4?X98WvBh{IEm5kCsma}i29 z&n~jFM>To0;kle0K3lX-WsAZ#9>c&q0R1BMEdCCHJKZjdOW$ZaZFi*Js9X?8B%-XC zaIKD(I>p2nMNpD40L(Jye!9c>Qo1Act{<(~tcuig;^Xjt)vjpq;$Vl+$f(8I(Z$*d z+E!sLKhluyt1c^X-HE$`Nn`*7csxl9@EY=pdR*rHQVx^Qw+tp(T4HkP;V}8{7A+lJ zW-@Jg{y}SgcPtF#Tk2oXGRzM7rtXJ*i9I(&=@6j&`NmJUg+7y(r^)Z zEcAe}+WxYq?1Lj^pM&~pei$Q|&#{gvtrACk*+0g)mQWDiupn`3WjT=VD9L!!*peUtz-SWvfa9}NHh)TTw7>$tFIETikY%N z-JSFA3L$uoD#U@x{D>S6Q&dTndUV)fy3#B+x$Uy1_ZhFnCb#?Sg>Eu2;){T+@7W7| zn7jzcdfZ;<4h5tHdDz4|bAk6vg%G}4!3lA##)K*~&m`xj{%@~>L(FI%8{|B%G0sgiZzJA9BnTy&6+19V zYhIPb@)qiewWoYSQ-WvK9#%Ox>+rv41OI(;CL$rx${X?qsTyCayysNj&X@eZ`Jl2L z4s?{|o_vWb$Wh&x$e3ya8<|v2!(nFZaefgqE2+eh$@QDF;mP*pn>tLkx#`$MWhfuK z(B|uWJUljvXEPfd<6T}OoxVJtn#U8vu0pW-bzUVWv}c1#s52@DX&z-G=dF}U-^|*t z&6f&YjMrF5QdaG@BTAlh=s$BEWmw5UtKCdZHA#L-4={)_=B|c&W$YPac4L#NV4{Hn zXfTyYPUDAp*whTyr}BKyTfQ}=jSRG;0WtFZy62K@3{#u9On>t^O!{bqbDm3+wr*>f z9g!;$xl<5-y<6K7;gp(WaS1e#sA3QrtUSL4ZF85WZX%{a=$$gTWu zuY^Q8Tp@qzvTt%l!lp>Cxb#dm8+NBR4+-khGY#V<#|iava_eGEpUuyM2l;kwvYyLj zI;XvrA5>||!DR28&d)n8SNZ0`nrU-VGlu|5KV6w(uo^0OaA@q5Whgb5YGCmf$nI;_y#$Xgsz$!%iDuzp9e>gj^y|R<= zN&^952Wn-^^P>zV(_m}KXW*yWHx10i!j%{duZ*#~Hgg!?{-Y&%=;m9r!(4X5&+UUF z-LKYX7hxn0(Nr6W;?%2~iOgX)pn6MXOBxJs0+Dg_a3;`@ww(9azRz%Pr{$rsNf%O# z290*+>V`K~`q>S*Nz1OVs^q((y`6`#8wN|e;TnsfJA~cv{<&T#?1m593x}{9K5j4c zMtsR`FxL5$z0l1Guuc)%`1kfgAIqZ%#=3W|Di+#qcxmLCT+8vnlyU9^AA|ctLYRSAAIrGND5yCrh4-6u)z%6vY5$D6%yW8j-;%V10{ zQC1RkE7O$?nCTEV!6`WMp~wO<4Oort{Do6(`__!x-eJYsC)EcO zu__^RorZDYo+uoOGO1V~RM}`t*(lW=!;;>5iT24jj(hz~yn(SEr}y6y^oR7sWn1w~ zx;o8?IVOSPv@%U<$~N)Ve!4LY8XuHkjrVR-8t)5Opl1K%cy0De=r$}s_QGiZvQUctEwl_p{U2?gyTI)- z@cMtXbMCKp&HZTa+>iFn{pi5lk1U*|e+xHDZ}oq)b?!&o=YF(v?nk@keq<3|{hP6O z?ynBfuLE;`wORT1`q#B}?nm2u9^IKVW%C9izY?`fuNsqEF8jMbwx#EmxW!2Av?IxWkD^KX-M@}8eWZ<>7k3%7hJy13Jv-1mFv;DM3JclyiM zbanKf+^LiflO~YIET?;te}zdg##4Tvu`wUgaZN%Y3(HBas8k@s4G4gttiaikyrC5J z94+;ygb2ks@#+6bm}mWJKnK>1j*WV&Ts4URD{k-(Z!LB&Y5-HY*`oB*cR(apuT zbIdPCVNb<|f)*3<1h&#NJb#kh;Uno2^`7r1*}Z!5R3p9gqh-&(?0T*fIDOw8iS8@< z4|IRBG5>uwsy#@m_gP^B?k*!!?>`y#upR~0> za{6|o*0qU*_O4}l*rq+8gfPCUDvS{LApHh73k1F$1GP+md`=f~3s90lXzlwM!~J!h@Dj)F?sUH4wNN zDnZ{c5J+hjplsx2(U&0(sjx-xuOw=Pd=o}L{(gmHoV)n`sl<)=14$R(4;0P!99BbY zlK(YwfG%)6V8L5k4f2SC7{_lh$ae$CW`lgAfd0(D-y8cILS%XFT+vrl+W%_NmNG?ao5dvAv>iryyP_I zd$u^pkWOU*HbMyi{XCW{+5!+cD<%NII!?eX0EA|}5wKM+VdOxE`s3@O7~|m-5srWy z5kJ!Gaj5|7tNS6{ukrWzM`UtHTG?PN&$#|h!vfh_m}%ZISYx!!R%#ion z&D6&MrPp36(_tk4q`}7XS^cITbWlaVMXREyGn^%po9_71r@uP=-rs%hl64WjiOK7} zaP9Ux9@_i(e^?h~+&=NxkAF3N^PVeTzAnN`F}eSW_kQ5uXWsL~&!D9O8?53ieMk{r zqIp|Zhx!)tsE8TLrI1D@cfR;y{$qXPFF0rv$nfNjpTrlxYURj%jifyfvKl>`B|Sl> z(Q}}n=OFYXDlwoZr#e;ib%97DT=Uv_xfc|0)6nC9?~Pk9^{f1~i${f9*>K zixIo0I#NJ%I`V%y<|3MW)5T*AY~_t4w`oi+I)9~RUcF%x+K89ZV5GP^-lg~|&M&%XU33cY4hJAGteuoaEZbMOIA0d689l}Mb0roXUKmX& zGVv(UgJU>EPl*4$Y#0}1cI8F@*Rm+b@ z#J#J=am$Z0#Jw2Ac~-;iAu)@i8#IdYcnx5ja7Y4U(or9jz?hZPhoz06eoVI>?t;lS z*f1er)>sdPMt$Qr+h5Huqtt3o?{*wl4oi*o!0=_X+6++Oz)l8i6Gnl{!+a=z6(&0) zHkr`nMfi6T9T>!TU4^WW!{5&2vFg2xMVXmkax&weZvHth3!=h ztSCq?2xq7bJN9w=77REpx0%xb0d$RAW=>ZG(Dm9xvnl zLsO=s!j4bS9!>0z$U7#q|3#r7jP?YKNFF}-v?rn*f9}F-hDvF|Vsk0Y_tr#W>p0U9 zicmi>ERON8xV!b`f9y$JTtZRFh4LR;QbKL=h?&W&wuRIi6l%emv8Cl} z=weI^^rl{1R)TFxX=cgTNe0w+(b#flns`&eH%xc5%r{7Pw8%F^ceKQ}KzEDCT|3qIn;g5ac?3U;YFM=Gp z+hchz`m{$|BIJeZexFsSzHpWS`oaBzu#b(iO`G5U3M3x+_;7Q;LMh6uD+z_g;O+*WdfS|J4HSCiiXHyl3Wz zAHN+QM}OxquZ+~UyHEX~c2RoyX&ZHDE-llMx94Q=xWcFT(X!CmCVW41YtiMjDcTPax4&K-+XNu9(o_nh2I=4G<^$ts(l*y+rSJz~o3+X@?2TYB5y z8OjtKnM{86s;BOJ^X`xRh@}wqY4WXG-v5K$-@Ej(8@X5OX&BAW8js3Kgy+-w8C6(0 zK7}X0RA7x0?6r&YUI$sh<(*o2v5-%sO@hpr00V?|L=sWs$%Ji2PzA0S7O!>%#!s2WrDdcL^rZdIyQ8LG-w z9R^3e%_6UWaCH4MYL*K;HC(~8FoBdsiL0b+RTr+%NUs|k>LuM5dr0?%s#!l)+^wD4 zG5PsRA9&;^zx&D6|HYB+m%D%W)jjup2rEl49JzbKU3pC!!e37R!!IG zKy0b6^?ZR?6i_;KU2-0Py;ejpd>H^|u8U5xm!i}y65BX`u_X%ObF&Yev|GZ_jEswP zr%9-heEKJhvV3WN?GyYK3!3j(){wj`LyLQ)eHC^56S1SV9| zAP0exfuDNF#HYG}ps2|^g?%4eac50&LSH+kpsS<`f8pfI9u^iBrC)g$jAkJBG=HZ( zI61v(t9wv>af3a0QToJtyT15)U(^@h)Ahwy{Da^62Zcn>zikher(abpWZ0@F>_Izy z*gq)0_=P<39xO}WuF8`M3DFgDO)*YNk@opOq_y+YBwzDk zsq!TEV*3*+#pygGJgeN=h9-TWk%OyWV!-PH3k)daf{FDIt+!iq7Nzg+M$(tpvTm6Ibi>V(9NiR+xes>q?-fIui^os5;Zm=}6oX4513yTsPslI|hTG4qIm79V-Gk@1_Mn+Q(aqRT+k-Uy z^tC0T=huOit^;g?ld8M=(RpBc9v%3Q%E^b)?{$x}kJ^Kg^gG=w^htX#ntody2#3NQ z{)?~p2PK>Cwg=18tGd6K^h0SkzYn#*yX=gLHUw&cXtPFvImRO8@s#wS$i;)UfIpqciDrH^y+S*`Zas7IQ?Yz z7Z3V6Hh0(YV_(#R-K2ZU9<>vL`V8iev)Fq5=a2tWWon9-=Uvuzx-d{7maq>q$c=C~LU;o|> z-}UP~Oj_OSNIU&%M%?VYCav(s=(99$4bUkwB}8Xss`N}-humy(hYV>)AskXRQ~Jm* zL1fW-nrTEm^J%NE=u@uPjAFf_y|JpuQ%A;DKpOR?P8UCKJ*v6bi0k+_e|}HVakg`- zbU5L2!ViR&R#;9fcX#3Zf1de)9_XI3obUsc^OpRCAE;a-$_qcx&YsDy zxlu;aFKCW?BvaWFexSIYBkP18=xDsaC;UKjI?+$~ffSxnu4|hQ`G^+A4&w)UbFuplM*==3!kD}AJuNoBU&G2*Se!p?Jn%=yGY=dx5aa{{^j{o5ECW1j3^0;^ zL6@&n(0U*mg#F^hnHg>0t4Zb%2gFj<$9Eo%DEdBW=%yWCtarp|H*`Rik zG<@mWkDV1eQrfcnTjdi%EsI!GD~x3xKGcFlcmxN_Kv8}=&!mDZ#oRlUGOy}--nY{P z#;DV4YMs_@;mG#Zmc3>bumt&T6P0Q&J*VA1T>mT`;i~AoTL1P1onb?dsLDb|cmG(3 zISx9QLFXose~?#fh3dpJ4~cc$gmPGrj5SV;)X>2ldyy}HT_<9J7E>bqv4Sk&mgP!G z73GA0M3#0*$qdSO6y0n^XBovBnI%Vy$+u z6Fp{0#Rk?zZSLZ=5fVmUow_zs02&e2P5!vj@|b+W^v;rD^)!|^MUhmPhNKOVl!Qcz zz10?Yx!TJ-lph@=<3t%;yPx3N#1X#0XZ0%q#hxo@2>vqCS;Iojd;=pyVuj=F^>~1y z-P)o=7JR5dLYSpEihH8Xi+cpufOg9Hdney`69TKWCa4|5Qq=VT$Q@%%E;0fStd26) z@ER8`ZZ?{61Yw5q=6_g3E@J4zkG}msf^YwY`<7fEQO8rB*OeoVFPi82+Ws>5;k! zA1jJqZDqP5Nr!%6K9!uii1P;XgSt`Klps_~4i5&XZiD49+~tmx(hgD)1uA(cY)esu zAQ0XT5#F|knYj5}_+B+kKszB^frg%pT&VmSDFy2$r(pd_Isx$?Rpedz?P3JJdaMzQ zz*Wg>NWem06e$^vx~ptmv<9@ErojuB=t;!=sk(PtDec|{w@b-n_v`hX{s$mh=3v2R z=r9MXidOX#>!Ko1(?YVtVrK0Vbu%ajT|qel1_dFfPNx&YIw+1oBBrqT`I1E}YQDU) zSo!kKBIJuZiLd=-7VN(rOa_l&tSSMn4O7VhhAGWrX5dCKG_QtfE94y+7a`+7Q>7g% z7|B^43{xbJN^5AC!il_N)1!niu(c?rVLCC zQ-U%yOtq6?VTS3$N!%)C8Ff=A(537^L6;H&kZ0@KlXHCgOq{v36k+(TsxY-$i_w!LMu}CCpB-1x$=6|u97A6O1 zQR_e!W{#!~dXnDrHg8L@AvT#XnPT&ovFNq3s5rb%$8^LJf8p%L?VzA@6wDKsF4VmS zAGaxqkIkm(J(`V*ORHtqK-}&{ab@i%6M5DXlhtPu2ij^=IPPl`IPQz-oAnX8^h~Yt zjuNyse>v)%QU6QN$z2r0}?9NX)L8H&RYG;ig1 zYF9=6MX7ZuJdQ-MtN7fNPHIXr>%BW7FGY3Ap@cZo2eO}4qsjD5LnA5*M^wX)C=632 zc;aWY!{L-2C5dH3A(d&eCJ%N>XZ4C3QGFjVqAaVsm1RY?DYC(+YLhUH_(Q9A5jdm-Vqhs=z$h8s-s{$FfQygkdUrAjnZarO_}*kKXWSv3HwFj z!_VBV8Hm$jB;gWiI^!Q@V@`r!>I9iOp4}bu5~cytus(}E_oJHDNW=`*K6kI`2poHr z36|cm&0fv1VQF>@c6}{k59b$?(IPNZ7SRwekr9_E6JXJJ6mg8LUc9J$aS;Qce5a*% znw=%~jyCVeZdk-bSa0yC-ARk)?J_+_-A$6P`sNM57)xDymbsRmq#i>`r8DGk+fk;j z*-13BlZXW~W>>Hjk2_0cVKj2i{zX>PY$X+xr+yJzl!h6blRx<8P4~R#7nkn%z$O1t znGqK;U+OeQR7T#=bV}1>_Fx!BV!plDx8CMmDp6fXgn^}+&xv~*|GxMR>Bejs&?Vtl zj){>G433Tr%`ACYbS6JbbvR6vv1>{?key-U{48Eej1Zkv5G3dPDn1Cz%k@vbOAQmW zrMQ+|b8fB+FSogazme%W3ntQ$9Z`O%XstWjms;FGM8onM3S_rHWS6Y6W4fyEZ9i)9 zy|duTJF}b1I};4W-H1Dhmh^>nNoYwZX>TvQiB@yGKk~#d&Wv(OJe~ARiA@z0E(WjC zjONHjiW!6Bu(A9?Mk0v`gW^Zh(v9D+38_{k#I>2$MY1PX&%$zXS9Xu=GSsji==-zj;nDTuLf-;4R z6}-N9aedW4Rk)^r)9SE7nWP0kHpGMQwI*5{T=qcMPzp$Iy~hj+5G8Gv@Ic5aiULYg z3>vf$s5P8-tNy6;HAGJ*6S^Abu(B!%*?B<@GCnHWYQw@(@`#xSgf4TpBx+4r-#k)~ z!I2unCwRdzQ-NR4eDmgoAGrh%&u?Bp9)Sgh21BNn5lS$IiwOhI-;7=*gxW06tsa9Z z8}0@B3kLt|gzs`l2nP3Cma*c!DRMR2wyWYT6`ZYW%u1U~BQvb{^u5Bb#>eVtI#z-u z_?^K*hO%`g_{q2P30#;jWfY9-8@{ATUerV`Rp+g7;n(ET)zJ>6*5rLWohXY*i5yvP z20)hxz}T`}2*S&BQV82`EKZV2*zV~SwuzK%ygC}kxW1U}^JuvLu~9jN@gl6WUwpkb zjcPhke7X(49kdx~hXrH}H;E>gp^Pz&+$>>+TBJ<~GZMH?>pjV?y^>wXS-#vMgbLe9 zPNC`5o?($Gd}mKW=>^!N7avsO#0xY3c3pmLCTGOB2t-1~g!3>e3ASBNKr0O7swp_a z%dm07vpbQ(%P?y1mSNT)&m%sKVo{E!z{s$P6G%K7Bw`3A`F2y%yQ7+>gd^FFQ?i=N zF?e@ipD5j63?BEbP&(!aTjYEteb`PUN@@?)-@zNJ8y8zra}xq{(+z zXN*WB?Uu$E_p%`UrYBt6(=8n4X3H4WLV4gV94mwdlxm~Ph6*LnylkkDShS{F{s02K zPHT0iaW%c!2Oo3dt(*1rZ5JK-OYNs#I8s~UW>2Y8KRVWsPHhzP`Z=_!G;8(GbgU*d zBb?dPmRoXYxXJWOt1sZwBG1k&M~#!y`p{b@A~XItH*gwn-< zNLAS?`h!Qj;9#mTm9#2l~#0@hP016Z{TjsK7p2v4FbMo@7wC`KIv%)Q(asn_D z{1Hvk@xZJoYU?SNwrw|afOb~A?T}-mPVjOVIJk)|6hJuYls|boQEf_~9FDugB~YHm zGU%3*LT_2ApT9UV)CV6;cL0t-r6)*;xd=Y)h;Zx(u3Vs91pjhKa63~9Qk-t56~q^I zI0;G~Mo4B3nmB*cg*c#EomlW=z!RLUz(Lky4bo`n$O>_Ue7&Q1;N+(<=3@@n!y%4? z#ytm}-t+v0!a+KHR=bRCSXW*G2@Iy?>t#Yiy|u{&hvXy^H-S!eTsx-yJb_{s6i#gc z4OFu;(Y*k{JMGk@wW^1=zEVtu*fH-(b9OIjT6|m^*mf#gIHKk8(;Iai`dp7@b3wCm z;E2&9z0Y}eNI(O6@cwJLd)$yX$K(B#FC4t%^>iY>%ceU*y=a4=FJoI802^UFMAf*0 z6Zs44r(gH7Q&W9T>Q(NaMtai>$ft?p$=%6VtnsLTsWI$H)2mXSTB^}tGgYaWpWqBW z?re#!j~7*HmsacjqC`2!DX7O0YjYXb)=**6XjutvG?lu`u~mrO z25{Qe01p_zDP;pZXaE=omzV%m{wH;q$=sKgFgPz-rJ0jwuWq3$7V4gl3I^ZR3`)VQ=pLgYASesorqoD8%c zJkPN6^U44*{P?AY1;$U*F9-1<)*mWg$t^3x#opON9m`f2N{a{O9pPx}qhI>Pl3-Vc znGb~!HFqviuQ3lwm|FlQRLM(Pd&&0eIoEL^eNTNpF9E;D3pTuiX2sx!D7}P7<-UA2 zmw^5LougO+KEV@7x$Ky}&zoY;Yo5TIWkTh`0%puC2o`);qbSF}RvKk9m4n{^Zuu3M z8~=jI(mK^2z{s=>uN)tm>rA!+93+i_t?+qgd##Q(NH-})2i>%x)J+!#x=C!;t($&P z*G;eQ)lFEIW!F@~kw?FrVE2IC?|31wyIVm%nkbkPJQ483l`jOIz`{QvCv4IzX}(7C zSxmmBT>SAtHuH>@BlWv^e4f{8@#v%FPRNNsPCWWT;E6-b*=FM+W^C&B<7Tn8y`z7` zSi)lPT>r|I?qNTV8*C5B9j+}E+Gl~KMOs~4*cNVWP@VwgnI>Rnl16h7a>Kl6?wGBaCeoTS$tng}ht&8LXaee}ro3_FD*+sUGJjD$GIJH9^U;9$ooi zs0c^PO<^J`WaOYMM80>HS~efY<<7{E2X<{^h= z9#gampP*IPJr-!S4d>pic?j$_Ja!fB-;LnUxKX(}G6dUkx2uwcLog>&{xe7LRfYS_ z5NyZiE+m3E_R&U4_mEqtaHJVTh8v21Qw+rk4Mi8vnM{;J@y~;y$VWYMwfpOHwexxh zqmF6x1LlnQk2GLxLoTNda=Ky;C;h>W1+EcF?UWLo#6dm?EgcJ_v3}ezQwCa;x4G=pSvA; zUQXG>Uv+SgM)C5jgmMoQ+Dn3!Q0{>~RY}8gHeu@Y{B_Ay@pCe<*dN58GqJc{I)jPD zv=j=e%t@@@Xv`$&A#eHmb-#tPeE%7qkh-Ic@V+jI%On2Q1m~enzWW{bJ@&4zeCFWw zm#iacR6P0kp1W>-%V$3JgQv+9z>$WN*If7Qw}0qEH*M1WDEHf*{MxVoZswuyXX_&E zT4l<68b3{J5`J`AsRFldw3AWa!rt8oG7@a9KV+@5 z{{G&dz2mA6{cwI&veX%+*ZD(EUBw)cJZ3Ry79|_j4ntvEou-Jvs5hic`{Pd24&!L# ztIc?za1nr@#DS9u{mWbo@#LEi{^ZdQe&>n-d5}7+|y$1`MI69?PQiFR#f&U)g0nBPw ze(U4APx&+61$K`1l^2O31n4?pXkZcE1GbNot*KR}XN#ya?hGaq%vM`jQ{f2g$yZ2T zJa>V~~~J_cx%*@Rt6gyJXY9kNxCC-tLXsNlDBlBj9E( z6ei+X9b-YgiWR&2E>d?|6LcsogcF^13z%NV?r?J0kw2%avV8ZQJjc-I?K3v!H{PbZ zE%wc|?wdb0emg7H*7x}Ih#V?!9ED z!{Pcc1cOR)#R`qV_(>g!d=Pl5ApQH!QAAjf`As<1L zU$ccujR)d<*+$qvUa#cy4x`c^U3nE)plj!LGCyyDF6Ln~@{u1tVvn z+Pm{s=t^-PzW>o1pZxfyk9{6nMg70}ZTlZPc-gjJJ&xgUSOiQWbk|687HBY>a6&R| z4_UjX6Ysq5%11x+*jumLO)aYRqu0G<*S){G;vfELKDCBuw{8R~I>|e)BQ+%T*G`hR z43J5uZ918ZLDI?WAtKW%8k(OXd2b{|+vLw`moC)e&zpYeN8)&fy|R>Oh}%7*zUhZN z_l>-x#4~Lv<+fAG%FD6=1n~1}hX)vm%GFY&*y{o|O5Y+2%=i>WSqsN?Ld91&IyId;lT+Pg zaclmRfi!miNsnr9r*FU6hKU3>pcNZSz?zNe9y6d!0HlxEwTwByaI^Ta;K?$lZxMAVZ9x|p5o6kbXFECFik+Zr3uCZpcrd4i6EVW= zYJ>mk_>a0Q^X6D+0Ben|yVaIDgTpEg-Wy6V;7xp-&V|2yRbxYU;vLR@L>ebxivRPw zU{RNYLE4IWZ5kgGolFc`Ysx8z--$y5%UMeIrtu<_-~>-hA3D5bemrsIv5LffHhIG7 zD5l7gYBm|qXKab5TE5ATI{1>2g$*n5UBzJTj)91U+4ab!32;m+!ZBwx){+U?q#NYO zhu!B6$lO=@1N}~c!$)J%WrVj*p^l_~+d;;i*+L$V92}|a_C1G+cc-DO7mj04RQYwx ztY`PG)(W**0-GfaL@-$Q(v{xBb~&Pr7Fvv&7V^d=lPDp*yjbTQ7v=^X=Em2dHo@T; z(VqlMAc!z0_nC)y+?`dLRYLyy-X##*vdM?NUSNPTrh>!p4}eJIdi2L$d#fk<<2>=7 zOG;!7Gu>8bB`0p{xZ$mC6awnPw6ho>hm{2L2}y>pT8@x}@75-F3zN2(Busw0=1^}r zOfKAFlJ-Pem!AtR`BjZe8Vk)OmL(Tr91|{aOUMQ8GDl3C+E-T0QSi&lqJJgA9FAZ9 zl^0u7-^)6muCY$M(5$0f~6ER*mFPw;>cm1TZOFG>vwOzK$K5&ekzU3T3 z`tK>F|E6V0qcXYWr>ObHlZoP=JXvOQ4@8Z)nY1iIu5Cu5-xluOJgXA2{m79sTj+yI z1e#FNe5RClZnb{A0_ZEBZ6qt9V$&6t9n+O7pQ6_V?TzWjG{_ULM*W`lf6`(E>@%Kh zipOFxQMm)1H{~({)V9=|huYKL*GYc_d)m=+YG-AsnkidAOOw_cxV$T+;ym%#4E4;F zts^y{@zhD-p(&2ofHuK)d{Fm$C#dULLf%(+g3ORua`MAIQ|j9O@8g5Ik5%i!8;X1s zC&unkQCItI&WK6%FA?V^I{iekU}jea(pWGv&3gngCTU-B%!G%q17odVN?&PYJ2^M89Ve{qQDq}t;^AZo)3nhh_w$#b*51HCqbv0c+^HX8`ANJq?c z3y|2F%&uJ5IL{ejXg3+{;L9pVf2eU$P7J+ewV|Be9Q{tc!bPG?MTTYCf0P|!);mXU zejCd0!%cL-0l1QdP|ep4Ki7Q*R#54a9NCu;KT%jZ)o+HEG+NwlyY1bB*b@Mn-ke~; zSE$MK?MmhZ+99Q%(bCBcPMC0e%EDX&azOur+@-8s81v70(`Gvj_%(NkL(W@YVOpaIXbr97c z&9bDosx{59wPG*>TFD{0^`;daQbj;3JRqJY!%j6DeELely*%p9+TODdfb5UJhEyDMuXTG2}(bB?LC3reBfCBSj!2pp5-E&-0yN(R_wV_GC~OqJx< z8-#WsCBg})=q%hZT~|E2=w_5*z8TWe2(zyaGrG*yVMZ1ldd0UQx-DWjqIXlxh~AgJ zeL10?E1paM7bSjW^Ap-vlAGrnXc7^p3rT2Uf{JZOaC$P2grax4$ zWRy=0AJ(K#Cg$@`@=-C=MEy-&v@u^s^u~L1dCp3$K)%S&$=XB1BcqEJFG-g!J1JUz zGCuDl-&)vF=GhIcf~_*6cC`9fX#%cLV07Iq7TD*o2`x2&eWKxBTWyDS`dKSDBSij! z%^ad=)u!8vdGL6$wa8q(E$)q%@n2O^SAh%^LleDdmEI5l?Gt!Mwh)!Mqm@iZ?rt8a zoprQ>N8`-JP)F{|!h-c)#T{W>XC!0EVXCarhg~>~_)2};#m<&*#pv$||4t1CcKbfl zi-FBPYkEfX$W=xa72iCW?r2ad`HO7(8=s^YAz?tEOaStI--%g1nvM?nhUOxepYq z*dtsHh?U$N#tVgD663KL%wqg>&>(IWgWM|SH4d3>>f*SQdeg6ZWO_0<{2U2)ZXYw0yq-0^4n$0Rr1i@*AtNk4xJ4)hnyIOIpAl+fBf} zc1X9y5||oZ7*!TWJ=|?=@&L<{&YDG!rjL2DA*!4XFrn}Dy$fM9oewxr0eZWz4(i4o zj^B%%HImh=?Q;TSo3grWZ5AA~f*+b9u8Pv|u-XJGwYxX9Wm%ZPKYFrJE!8rw#J{>J zE2_j*;g}Jy#A*mE@gD+9>&^pJIL+Ox#a-IFL%(&Qv{N-hI#+*scbAfNlrAw0G7Q0v z)*;xsEN~seJDHbwgKtNxhU2|FDQ7hLunWsaZ}2TQ6u-LEsm|R!TREHk=-3<8P2}|& z4STwPYXqc(!k88lPpoS&M*MN0fg)ekNIUpIwQ}QVx4ziPSMsQ>HoM(@4rY{N#o5Cs zJ^}-1k7I0Li5>ouT0o0PYfPPFxHwrll5McTF@|qP-SK?f> zUfG%DW?WPH?6A6U@Z3MId9gs(`F7o6LH1r`ds92hM&;X3w0`RB-sGx*AX^`I4 ztL=z95royN-7@G^Un!XjDsHil!|C}}gM{mh(+2SqOX9_fS^AVpb!4XO^instR!5r$ zv|y-h?ZnW(Z$RsWPJY<1lPbaOMZ=;oue|?v7wQ5$WhC0w;yacQ5=pb zfIYO+o87b%tebXsH@j%J+W-OW9xy;iy9W)@OS`T3>OAdkm)lPD_0Vq0J`QQO*&re9 zwiu+BcKa*ZQFi(XH$)5CEk15(XQ}hHciWfK-S*|yZu@eJ0eS@CW;vQ>$q>?m-2FYs zJdH<@U@!&K7RVhvZjnpq4{lOMSuFRr1dK*|K5dYYtF{`X#(8d3 z%k}O3R)L_9;TKqUKPm9Bqa{Hx?C^0%%Lxh;uE_}*V-~?xlM;8eYElAg4k?idxicKk zNHs?&BpQ8$gu-k_Eur5g>*tzkB6H9vj)7E&L1rAf9mMTrq8&+^$NTxm_q_P`fus zxMa59+GJK_LZzEfPwy;5g5|($J0e-`R&lpci9XhdQ>Jb;37%B~e9bc6%mez%?1fZjmU~A zv`;v7I+C)}gLNH=3Oi19q-F2B%B14y75i^8KyYNtLF=}|wpcEI$^Z`A1rM?f>`5Va zi+#OjV}57Fd-=}6jl`u@7`IXcw0t!o#|wCx-VB*uK-+d5@V%93b+yZ;J8~p<(+*uC z*>YOn|oBb7@VcY6v7SPa+2fVHl^BroGl<&4CR&~Zv^x#$!r;- zFV`DxLX6&MkPxG{86?E$?Q>vsn~HQ8rQY<)LLoZdi;r90b7#NKiK$)c)`LBmdb9^q zPxfHysW~w9K!vGYVCvIHJC!`%c#kN^sL$?di~jBhSN5cS@aHg4X==C#RQlzzmi7V0 zVb-GQDwjT@n;dVAWTN^fo9ESIO@c9Uat7sZB01o>D}$Zk%D|?q&iNLF;NaTfdXiA! zNBIRxC?{r%p6_Kv^{P+uPMML-cE@8uVtFZLN8yXMlpSMu{ifr};Bv=O23DLqxH7Qf zZnt0qTr`DQcbfssKviV2*DA@4MPtS#0jFsd#$w?cRU^&561?&%S>sJI3LZ#Iy>F6K z@X|fxI*asf)(U1i>ME?vRc-GQ#$^3nC45=sl$w6hk0T;kowbcU7gQjyRSY<2kHFSW zz*X}VCxTP#^~r>;vaxWB;h|mFukYQ2=Bn@=^Numsni6IW!|CS$+R@5RrSr{j7M_ga zmSMXjIST)5pP~fmtPa;sV~{~WLy3Kd8`nDz>bO!>v2~IaQP6i*yn!EP8fZedXD-Q) z0nhXyq4CDE$xGS5+T>bzMYNnIb&&B7OR-xGCfjRmvc+A`%E4OatB1UURU`w=;<)E4 zUukdC8S(2$U{p#H7RlwI4*BW=&sTsQUl9pA*5B^oLm@itFwkil$K;~dAD=NW5~`u#sU*4(Or&VaWq94{>9tP;%Bn9?z$XG{=T zFs^7+GU-FTOnT1(uL8_p;Q3Vms3fpq`1vII6cLk)J$V*KfFd(*qy`<{&DFtMeGUPJ=bfwUa zXX`%DmUgUYkFq?SvZUio?$M`8b5&vwa6b(SnEFG-S}3Lxp|0#gjRo3GRnprUS7nu? zbJ9=PE1Afoo=G~`%r!c_Mk-V~Z*}x~xv`+A{MN5umt@X|GOohtQ?0$(GGa|Mw``JMx(GtWVAX+dj~SdObK z$kh?Ng!&j)NA?m5qoPWE=LHpmG7zx8P$N*$XEZ95U-}~rPa&2Bv_6&ZY5k*HaV3;w zm6+zfq`v&y+*eE@g|=SRs%SKOZ5bFbKF)}=Ht^LN&ssjLReG=uQNy)%hlbK9Db2UC zL4K`$d%4zb`#<&>AApY@e6!M-AGC2)@(FR{-Dc-i1_(x)%L!kNMTgzwjn;ksP+@wt z7kFwj#5Tl~?R0X&hDnIOQhXe5XtcZo4*Q@nJcL6)`cXgE+jTk4d(ZWT{~U+#g~Olm ztRVqVz}$eWTyQ4Ng@^T_4I4+RfUVaUSJRZW$pyS;36e;z_>p3Ye{7C>u*2h@cSt$l z_>xq-5}>if=Bi}jl13>3b)^KKFP!o{af)P=M~l}h3yPM$E`(>W`F&5B0_c_%)$w_= zts~mKA+yFdXAhM}=h^;jBp1Ul*eW+`fMBQ+GE*O@dkjzwQwhWNy2d%0*tyvCLfr*N z`!M+3@b(95*!Tv9NH34oC}5dj{!oo#&~q$M2BSI4fbYWS6eixcOU|%#Xm6ySE#yE` zEbotQBdNT%8BPv1)!M40x2U|u@Zw_ei;=QATHd><)|N+Ska;XA)6!sFM8FvX25Tb% zuGfpf@`zyQ!7vgp7YvL6TvOS20=lzD*4Kedfq0Y3N^?-Jx}!&ES81?992UOzfgjO{ zFa@))^sb54kVG&VMTP{zhyy}ZrAVGNNH1|_L;yz}%1(b;2pzN97CE7_uvVL`qZ+4~ znN($w_56s9?vkp&`H7k8W*_?wn~7}(wC}G0oQduGYY=CJ`~C`|(qFkQ!K%($XT>^r zh+VMSeJ0}*k|yHxz{VDM+=BxfTj0!t8El1(EpQ(jTVRx$(SyJeX?MKIvICtVdFXEbEdcJ zI)^N~#|rIbSqq>7g&>G9tMnr^mK{14ENhFYiV*4%90K+T4gtFbhhW`;L$DsfAz+W- z5D?UK2@XL)571u0u^kiN3yykxQ%Hp^7P}Nu!NoU)RG7ARdZ}RXO^yn*Bi&XorU?#m zwa8joSixbdt~)KxBoN&@3=oLz?FI;B_Otffjd|nT0n5XmQau0a{#uPJk8{!_$M7eL~Aj5%d$HWls-U_8KHa z%dA0q(K2JmwlPcD=}ZkRK9R!0a*JEH?ACfYOOjohampYewY_+Dt|33Caq2@N+KGSO zN#9&Z9t#4A9dWZ#7$5CXzP6sYx0|qg3=j}@mjMF8&KRJFush}T+G24-U?3!{3lIx2 z;9|%^!m^&tSG|PYqEa2dQ+E2uv*GsvF;Tx|z8Ao9;cTn$TU}!LvSbTIV@PsLBAu;5 zzX_4TgpyV8u;$Tj1{BT2I!`QeQ|eu~Rf@PE!bg%E3$X;~>>POzOTcLYU>_F8U}$ey zG_vu?>d%7eF_&t!V-^?pRyh{2zjsyr*CVTHD(tF442r_7t9Tj zL(sE*Sk$%J;QSI`wQ1?C*103BZ6c@*tzML+C?Lof02~=Bz%xQ6zPpNRULHDS6v70o0Ok5mG9d!zH)d4Ec;rR^S_d1X5@-SGFWB5t(~0rH{W~U-p~E!;h$c- zj`ZpAac_jDXe;56! z&WE~bN(Xs8AgYu{keQUm#z^%>j z+XVh)9pd{|Zce$gIM!Q04fwUm#df8$DYR3JIiQu4-dUKyYvk)%Dtxa>)|AF$9{9S< zovsQbV{_XNa##KA`H5a<7kh9F6*dn9Z)M7_6|MmbiiWWJhv@UB!eF*Od;i`7_SyEX z6iXC$I^AfbE7mApW*V*l88QD&34(~xA92Q+@b*fJm?`2&F^!Q2Wo-KSTJYkf^Sby9 z2FqG6i(Y&T5DcGf?&h->!&1h42?D=lIdPw3xiy~U%r6B)r@wM>O{=37Vma^JTT!yy zs(|HefYn*GO3&dE=Q}Aqhl|{O{D~}!a?y3l9 z9<9ult!wORW}~i<%0W2l3aMO(qppz3$vCP)$bj!@8Vtm+rM)rE_iA6|^S+SXFyV0EXA9Xx6?S^8Kuyc}xTVX1sV7%DnJH9(m;( ziyeT75s&`Gz6Alm=u>$l*#y5T!dWSr6UOBTe`%6_>gx=ImvFzONQ(g%GqEmsL15FK zfbo2VU{j!gnO=Labm%BS+b9vsy#W^5VPP!)s<3ugl3WG`Od8A@no%C7zuC!KGP8Cy$Gp2oE<*r&nw_Qk-Q8sT^3kY*?6nlfUs56X z8EBllB~a2On9qT-q+)k#mvl4Vrd>Yy8GOOIXujL-9<-f5-f5ISX|R7V_sx?(!^O1p zGRZFPslA1}h>PKx548108j6^z9kRVx4!u_1xUka(BQ16&;b>~*7hl+s^cc<-<4J0E zh8h!a9%LJ0L0m+DUo7-<2uDbH54nb_p&xORRS(ze;b)QxuttDS1b}e?J`w<6_o4hl z0YITpL-}XHSkVN`S0J|p5Lg??M*|3g6v*EMkXeI#m>rr$IfxhD`B(r!0s*--fFPuR zd@g{nOW=a67)8u7q~r9K z(%86jWJujtENXx#wvP;f z8to$SI51gO2!%*}3$6<)Svq z%zcY?r1*#9*RhzeHqqYeC2~bM$rR<&?~(`k>MvML5;M;CU)9pTTsosQoSx!tx8kmM z#R(x}R3!wZKi7eOiRT9KC^YSI0UxeXY>2K(5!aNn*DAeRl?o%OaAz`>iYGcFS|Ugb z{!07tm)^fE=`4a9kCe}>;8Emt$!Ad4@filgg7KNSEK7B$qA`z_Y`Bx@CcOZQIt5qm zj53+NBaxZHKq{0Fj{WOC1&$7fW}CMy0ZnT>%Pijl9 zSIj^Ey?E#npW$8Gf*Y;{EZ$%TW^wv8Ta;_$i-{W?PacTJ*tt8-mf!RXZrw|Fdo1I5 zFZL-UTbmqY)k{=8z;FJeM=$#Yn;DRpxceK<&V@hju>J95V z=}uXqETjQ?8VA$126G z2`Ce;5>rmxR;p1*+A9m3-v?r5VVST~GYHXlqZum9TfdT(2)l9yAUVl>IRlW46pB)9~?xCsb4Z)5GJ*D~7r8ga$D@ z`4<-gPeaEOp3r#t)yUz)@YBOi-^`6C6qCb~dvPJ~)IOf@gd)vvHavBlJt(hLBS)Fl zkMXr?3$2a0Y4DQ$HK2T-rbsv-`kKI7{ft-2+;TQ7z4TPV_ z6*m|H)~Mm@pM?XalgQ0HA8EciK(s zYZe4>=mb68VSu2kEGqCu^|kgG0?3LGoS5~4rYFq&6}i!|Wrbw}N4(8qi9H>1seLnps!@r0j%5 z3L7$o|G@|zp&%@Cw5&=d%JtVj4}!4xNL*42{JXy%_;+4!7?z~~ zpk~;Io;}a7Gh4%sxeFH-JC+MTh&Al2DS1N6rpN&>HeQDrfwK}O-dV8@pR^qbK`^uq z62Q__*s!+32=Q4rOO@0JSxUejmJ)CdmJ+*W7|Png%3{xYej17|5u+)vW0#&M_6*4<_X*f`>4P4OA1w$GR}={a%jZLa8nCQe{Xsz4IYmF@HWSaV8{wXA5Y zr8Ya3SO?X@ogdI9EGjhq+C`Tb*Yv|9sPBtN!RN;0#52L?EhXNpLf4`aX1J6v zGkj~Q(Zqh{^2I}%Nu1Aqj@ui~Apy)Z)`vZ8PU1!(!r5Aoc+VwcB61rDin#lZc#+bU zfL6v#zGL8ZaOgO9M3tQ;;Myc}KkUrr-6cF$9wck+sT!Zta+^FFome9@{m0uiFJ}#Pcq3ISk>XfWi)?x|b*5m~yjPQYJscxbH~+h+%v`j5 zoh_9R%I}e4kF`;X=9OXZ&lnSXqa(z`2aa=0+`6RMK(*^XuiR%F6>A7(8A}4GQUIjy z){48Ms-x=~N7geDtjXko_y6=AKfUJRuf2zjKeypgnY`^=-}=Gsdp`NjyI4-XQGkP6 zKJ(a~cfRLG|KGakdfors1CRgg`tQGcE5RPyxOXyW8=IxG^mERQt!l_}G#ULz)r82O zwD6TA&&sP6DPXo3NL-sNBQOj-;$)fa`%x=+RDz77Eqts5nH&LB zNH~oE%gW?=EdAj%VrRA!wNW+NRm7ekmD?F4w64=;7r2&S^)G8IZX}pWVorircwu|Y z3)3;Hwc_x6)__w9zyknBCNG)11ZR%n3X`J|T|737joCVXX`35ru@vDRDfR{xxngMK>e`Wam$T zFfHQYZFbqvm%#CjeA~5mOhwFNl2?ok zuH;LYA2I08Ssq-8eDgsclKaUS@xPH^ULC!ZpcMh;Nh_U*C6bktA32ZF)Di<^uY!65 zx*F$dB$+V&f}0~K$xnLm*hog)1MFq@S$VIgyOLKeii$7V?u`}Y8}5F*yw?|dk_#5m za?frsp|xT?#kf{X=y5^7I!PUVB}cSRYg)fs9kC=kv{Osy&8Hn~tFHegxfJzl^dJqM zt|97G`t?NJtZRuJBv`(gU&Ks$@Xd_hd;q3z^fm^Davb-J_-p^ZXM?|{Pd-Bavd)U7 z^1Xy*nWzlJqF^R11Gy-e*(;?f=)N_1SxH7K&jhAPD_M~yEfM1+9f{KSNTm?A^mKe- zo@nEAGWqUbTy^kM@B8rGKSgbr9@+lAcYpPxmw)$$Q|6~eWSo>_%{*DnabBB&FNDH^ zVI0cRAI?bRJ6593ahPn3`*D~~QYWk#t_Qx^b|aeTs?GHCguzW@C)_7;%r?C7hFEC7 z5!(+$yK8jl~51CPk-g-oIx#kFb}PO)~dz@PF1xOp6<*5_f~l`Q^D7lz%|8{J{gx5 zv#((BmNYJi5l{M(_@(yBA}}yq?!YDY8yFNga5(^4GGH968~`ZYRgDeQta{(M1%%la zP?f+g&_*WQ^$3!rQdGm>CtjCqQ4AkqZ?k@%lMnLl^PWt)X5I zjIUnDPq%)0wR^OIx=cHD){*tEP(#B~PQ%hgC?C3mBtV3shrIF{UI|Pzi@mPu#}VO} zrXiETkbVuf0Yj(}0Yh9s;fN1UfOK}dSiF_LE5KxCn1pk(7F(MU;QX{#GC_GJxV>uU zvBmB5*dcK{emLCHch+@Jv!R|RBX1-{f;ZdKz-mWMh)N1un%yV6D9!iV?*LB@*wyAA z3$EE@y3vE)Wgs0@K;+A|@AEwUsYFT#!NFUu(kvSJbuf*bLh|@|WMURAf`a+vsbh^i zy%1s0$g>MEF`|E);K4*@ybT7UK$(PaK38bdMgxhMp?jZ(i=uqVg)En>c>~kHZ*$+w zhtFO4vPdOeV$t|{dM?uqOuhd`yA)Q0DKwwL*3G9Zc$bRsHKLL(jTI^zahG3z%?!x6 zOKr!-kMXg7N{}2?rgrmwP6J8@x52nOliOh2oz9wg10NMa*o`^RuSE*Qx}Q~hICK`yu9zL2&+uMmkmbh$~66_uPwbm=AwW-z$P0xMBCS&~=t^}!#R zc({N|B=7nBc)@!fm$dzr{B#Rm@GikC#_ATl>)j*aUPRkJq`Y^HoDTdYq<7PRSn@YE z`3tl0R6D3PFfQEOAzlfHvxAaC`if&m&x&AD@C!y0H+Wb;aeOrL@kT?l{Zer3A&4#Z zJZ32=-1JqKCH>?AD9C5o;~fc!ac6#t#hw(79Y(oXaprBM&zk)@E2AYNUvuKDd4Xn{ z_<1UB~<}Q7M1km*i-xUhfE*hE2}B8l}kUg-W>X5jgd6T|qh#PlRAX{wXUMD_F@ zdC(a@;M}?)DZQX%lPS<|C!(ZRKRB|ZAKYe3rI7n-i)`|xOH)=#T!^?ZO$`=OElrKY z3>`-t;NFuExyquiOlg3GVu+nOhGOP_=5}VtWo{J8@;MFr1VN_~7{95DW?=j!ecjj@ zTbIl|*7vEjBo>aWiApp!T=7KCkV7Tk%(0vZA<3d^3Y$28;4^3`iO1If{`{4N!c&4= zK{xc3nI?Um!UGGEndkHM-70Erat@a-TARF_pDS-Rhy*G;b2dMp{g|pVU)anb?k)*f zzL9{vVn_LCHsO&(ERRm}GII)rC((+`d}S#!o06H$KxWQrc}xn{$;_r?rnobZnTQL+ zL~fz64+ccDcQH($*xrwQb1KSDR`0vspawZJR4l)%6rwB=3M_v{4Pa8xi6{Raf-pK& zOUZFg##;49A7-w&MAe1U|4ICClQXw`^{mbS^mTXpe>u|8nOIJAMlMCaok8k#_SX)< z&QCx3%gcUu^Upsyjo)4T{I$1Tw{PmkAN}~t_)ng9{Csske*V_8%g>*Pru(QsQGZ2N#vuK(}?0%Qry8?O*kJ?T;E#p za5sDZw0hJ}Tu+<0E^ON)mD9?Qzf5xy6SIboL$G(_8H?-2yv22v93%FA1xAugm!*hw zv&b87WTATJPjIO?k7HX8^63ho4>Uix2xrXGPY+)B-(D7_BX^$?8Zp{z)a7b%7D>Oq z3d9=ML|{mV0xEy3$$Wm_Zc|=dymKgIM)d|ihn`B zZ=edr)2X8LA7vOP*p$pxd}x5pw`-p8Ov{{nLUrCtixp*n(&MVd8@*9_W~pjbV+SEE z>s9)y#`d^&K+c{p*hL>Q=P?JcbT6+H5GKlmC*&9oeEmMy#V}BUWFRQK!~sSvYd%gJ zFuA+RMwTBi6Z~#oD<)J-$a&}N3ZRHa(WZDq^Q+UHS%G_%;@vWyotP%l7%5p*DGIb^ zQ3B`+KxWo}umIFWW_4H5NgNEQ2oGw-{LvJ)AXn`y2ra_fb~L#J-An1uG)2$^Ar11C zk!ds&R?mn!!MrZ*o!9+gZC;o4&g(4K)PkTicLxs%opdsxb-6ovXf}XsGvYyw@}27q z0>NO{GP#_Q#?W=%I{D(wTq~(`k(QXBT`KLb&ZDMkQAvl&RaCmXMkUAb$-+^|<=+42 z#rRJa4h>`cArm4Ch*HaJwIGaN$r7d8l-OKI0n&I`^b94(4KL8 zaV(5)sPSZLp;2n-wEmf)^zRElo(*&Fw_G^Msf-nj$5MB=<9adRR=IJd^>?SAmF&sc zJA9E>7{exYQNDxyU7w@J;d$!imXwi4TX9k> zQtzo&FB0>ny1$wvjgM(vF<84u;Bfw5=X5~bj1H)q&jIyk^9)wziHc6YR_LB~uo}@W ziFiuD&V;u+LmQLPv-8TD)w-gWn{5NbvF*W)wI0Nd4HvElT3@g=Uw8i2G3g7W&^cP? zgmft;hpQu_j2~VL+ONK&>lrLK5Q^kIv=1G^qxHmNKmOJ9&3mqVx$|i4zv8_gIQW_O zJn=Iew9iYI7P~C9_VE2azFNS~flKS)M@x_GY}X3J$3Ia%nrie}fmkMw?ZUXU3?I3r ze&||XV7UOF$@AK!HNCj0Er3aoHnTVMCzR>c zdkas3L$QF(7%VtG$+<^@>tEdVOIJTIOCt%hb0u zr2;+blM!SOYB`R{mYIZ^!Wf9{BaDHcrgMj-=4k2dyZU98!qIgfnpd`WMp}p4JW|YH zCg@x&;*hgLPhfx>#Q-Ieepl#dLz3S{x`0T+Bs65mS=x(*W6S{`taUC~a1Ow(Ej!1E zHe)bka9}+&2FB>CGkG6r;CWo*8WuMyy0flf9HU?Q0oOT7b0(uWs&qw*q$n|1!5)sJvKZtzQ_J?y<+HV!TW#`@#_mGv2XGInO2>kgB2gRAxHCV$> zS4@F5Ou5Oz?wuA1WTPc008pPPmW@3a+OH#cw?Rg!b~rrqsRs*Ta10NJC)}`(4`pPi z;R6>(9Uo%%KKQVG!uuny{DNf^!Maf*ST{}t>yMPz7f9ii^jn1ia12j}ztL8+11`DV z0FFx}+wyI0z1zrVfNKpgVa6Pw}B;{wn~R4Nz6iX~{gY zQ?SYQr?>XSv|y&NGlIee>qfO;-KZ9r1w{j8N;?0G{@zk^W;r8Eydu46ABeoI*ki*}2IerB)G*?4f zAfrYgT>zOGU5N(`d^QIW$W_>#l0dbE%vl43Yn{$^XFaqKA9fOH?Qm0-%ei3ZIepB; zKwHhlx(6uDdax&0-y&Lf7o?ZDW%joDba*rUP%+%hbuj8IlK!p(*C*hprCGzRe7Evv0d~t5Uu*e4yE|Jrwvd($rgJ4z5ct>b-_GySj zH$w?gxY;CAh(I;V*s=$M7dZ@SnkJ;MPgDY8+~Xj9xR|kw%jGxZxMRGWvHVHk@}t`l zVK5xg&sDd+QKOb$$y%UpY0age7UR*h zOUQ=6Ogx5+2+ZVT$cn)FbK)V!^7VdV(SH7qWlhn~h>x{MJS#@@^@zlSFB~)$llbRA zcD$>w+D&%E3n~(e>3gU!#|t?sv0R!UE|S_ng$WXXY=oihJP2(WnF&%THq4K3>`FcK z3|^-&c{3cnhgBq=@2)png9dwrLW8XC^qaz-)aZQHD(FE?r5tt%={Q{0tERi}9%36= z{HBp&X>Y1JMaf0NW(2;oMN-?rxN3HiDs^Epkxb;90d!@}wLS51&e|c_P7KH84s8e3 zEXC$3-o$axeFo)k0hN!1Q+FCu*pYZ!5;+cY&UwJc%;%>WC!yLM%r?5`CEHaZso+htl{^24a(ozyE2wtUYhV-8O%2OFW#jeoUmiZR_GGn zi6zYE^1OA)e!8i%EAfk}mt?Rw;Lfv{!Rc(zru=D1WVpfiKgE&&$tpK{Ans?l zczH+0G#BaE5QkwjJHtxQGL(|IgmrK-qOwcb@m&_g;OzDm~eY1=+GHWt|?uNue(>*i@P(XlV1UO(mI*5)F8-jxpoFIZj z%GiL24Hn>z4H!_s#15EXf&uf9cz*xA&%O8D_wK8DC6$Z`LJPlpPn~M6n~x};(3t*?au7(uJ8oi5miZau)=>^#HsVs;p#4Od2!!(X16R& z32ot$269l4)%I%qPWzlEa&^>Xe}=>Y;hk)*hS<&K#W<9~zdzagJ!KAYck;c(H4y!5 z_HFa&e8G~AlF2IdT{d%;lygQb(3Q-&*$o2M0PswcEy987Fsxe1^;QBeDoaA{oZ6t%e zQ7}Lob4DAw?TSq>^icE&Ww6H%v@zeG>JvFnf#|@mWb-FzgR4Ena3KmH(vNOa^1FTH zrKf$b^7AMFT={u)1;~E=D)Vu8-^;JA7vsN7AOGFk+SB`sPnZN|7%+ebGvf9wFb}Ci z(WIQqC-d|L3*?1ZNL7-96P3M$3$VZwLtRK)yMzU#m8vUMyaX5THFtDX0q(L^udx<& zHt$*B(mBRTe7u6886FFO*e(s9yMfA%n3twrCam(%Uo<|OM?Fj}+6^Mzg~Vaso+OL2 zdFxq%AM|Ed%FnKspH`HgRxh6^%4f=QxJUXY+0OLkqG~8v;Q|3Tp1{5qjCf4;5V4p_M5cAM ztl#u$sjUTlWh3T_f>&KDcBok?A}Vfe4NV#!u81jAZ@7~zK} zdpW3=CbU*dfu}1@Djc>N)XNYYxiXS;w`f&_^ifBv^ilofH)dZ;4hMAhZXqD0v$tG8 zNO z?WIy*+mZV2rBYwp<{1*#mHOJw`ERW+sjrNvD%HJ5uD)wU%rr ztu6T*puV>X^}VfVm9iu0^fvfPefOF+`bvHGLL2_|1E2f&EA`#0`uGnI)b;Tn87TGf zSL(aB;N!o$s;fb}`fh^`>bpG$^&JeLz6%9X-yxDxeK$0qzJna3zE4J^q#Lt9&et$My&fA^FF2dD7rBaaNy4(}ZOUZ;xw#{+Wt zdr$b|_550@mP2Rn%nquMt;=%8kUg=$oDvVrDW8rAt;l~ir%VK8s)6BAGq+^Svz^S8 zb};M)rgZNlI|O@YCu20`JDH)YyO`W5-^&moT4q5c1uT?1wP*KB<=`=;9{`@pANZi* z031!}5+m?3Mdr&EgO~!5N~bgBc^G&(q)J>~c&C2FJvSSxLPHN;Ro1lq#cXbvr`(^! zYn#!H!`e`W(M?YWxn4o+c`sR~mwC3;YS4Noz4x)bOZvdPt#yFq#-oOD5O*>?(vf{q zon6_1k(Wh>Nd2N-zW{(1my!>3E=ji04Ec`ylZ*B&CCMd;nkL-V()-0T)YnB%07H(Q z7m^Z5S0$8t#o0UN+7gDHmv)M?S9xtDE)Mayzx&f)y8X)!fAx*|&SV#_KluG0T=lM( zz2jSdL7Ih2d4K&o?)vR_zVn8CkKo0-gZH;T@X7D}!SWZs(BDZgRAMJvx+gpD_iheX z@{#=Lnsj$tsf?4|5B=cH55M{4ANzytI};qolHG5)o7$ONulFc5*Fn8U zxw&v%P|My4?SHb&mCSNmDl%fT^Vr?;G))v=6f%_XxI?+Mi$5VIpSJ*S^*yR-PZMk= z0C8d|NoCyNqL2*H1zAt#AAb3(-`%F+a(oBSJYV-dn{f?pG27kx*Glj@f%JuobaM7P z9d;B&cc9>4x-eD1k32%67FRs;M>fmTN)m<4=imvbN{G06-L^Msw7$K;;9)8+cN;fv zZvrq?TJa2qD)qBbLAD{3_(^u(bMS*#z2>&>zwdL*v(40fSABHbEpkVhsIkcly6>S%75%4YRUY05S6Zvz73L2|w|E`?Gc>cjy`r zn62Ed+Kcm%(ACR-^tF5c+h@Q0%EyNhe(}nE?|k6sAAF`e?f_}H9O2t+gp3G7NJk^X zFk+^h0~kW+?4$R->yO|4&i8)(AHXLZnT7T8KYsaZUv~K0=k844arK3DjS3=kLWRZB z(qQ^MyY4b)Ll4P$MjlefEO0Rl+if1Ot&zi&hhTz1QX^Yw1H+COrXJz6#iJppcvIm4 z%T#C8srkpQ&=g-$@~)`FKc?`VRUtE)yahw_0gElT#(i7DM3kIONz@#Uz-$wF%TS^g zE2b!u$h9ne8FfWw(hlFQU#R8)>{zrY8E7Pj`lo|QLssvk~h`_0#`8(90{|{lJ&s__nXz`+to~ zF9l@ff}n3@sb(a-1?)$=|KgFie*TVqH~h)(vc_!Dz2c*9|C8^$=HXj6jM>F*nP9rR z(--f?Si9xFVwCFkXMcIi&x()L7ldu+1{TDL4sg7cC)*w8SO=MgKJ#bu21f)w#74vx z`_nsNj8r10`rZJ3@4Nqh-~K;$ zCVNxzsvQ3Ep&$P6_1Ayn<)HXQyvJPZ`MgJ~?$;5Z$eUC<8m8=v*VDE5mhmpd>Va)e z)0eh@@5M}shSM7Rvi@SWIYxi*%%VT%nVu(aH*&eXJL!Eum&RuBaVW;~0`oMbTotfT zfkSfp>$bdjk=@fT89Z%58Uj=8i`)IGo;NR5R-} zTp!?Fc;>%!S#UVV^!DV}H5P?FI>+LCqI!h8gi_;Nma*UJ^2N(amSmq$@_pZ&!pqX& zh4Zbd1oS2U4_r(8mfbhp^X9+&owxkseP1as_tv}KefOU}@W6XMH6G^Jc@~I!*)wg6SX|0m!5%#A<1=0Ap6x#zAg-2JVqu6(CD8)H_E8ls#m%f_FRb0(t0 z8LI;sHV#nMdtFdBO~h0 zR-Ydj#Abc~@jz+{ryhUZC78rtrx1Tief%r%1=4l*_54db%lNG4XY*{+A=2`JClZ0O z1310;Ccp}hSRu5g(O8L%L`W@hW*U8g=yKGDik!8xk4$#Nl2Y{S^5z*OD^G)#o$ij< z(tm;;Vy^Tbd5@RM|IK^Em3|eFcL?q;Ra{9(xpYB6I|L9z0w>sfzoB_WEwR-5C^vO3 zC-7q?HwO4doDP0qa($Rvzq4h4&1JhZBDQ$iJMfgi*ZA4&jIJj}hnC}vE>h+MQKZX_ z0nlFKat=|+<@N?Hx6im6CtA|r)0!e@Tr5)L#KmfJw_gR(x;4pcP+7O$IIFaxcGompN z=PSq&S2Ch!ixH)Lo3dTy2ACwUF+0-!7_d|pEi3I2$|XHrE@{q6qb03pmUPJ~aLP1R z0a>)JH(vqtN?InT6ctF&zbtLtrcR%z!+LYXuvc_OhWK$4P&X0n9!_<6aKnqHF0e-?ji zsu299)C0>LMCAwUwu`Afy<0yZF>VFg9^CmYjv6=W)5K4dI2T{$GhG#dW7OS|T?>op zJ+`;t;aJ1oA_KJEyLGZ(8WI;0SAJ+L$w_`{U%64yDh=K3(*|Vhh`abfYVVaz@lt?2 zdN)vBLUPhf7R4R>1cRdPE#veVhs`0gVxKa;QGoEEQBg?aPaw^DIj~XLpUV`bxur0r z3TvA^mfiAWDNTbRQOEy&PM2R@q-~}4J6e_w(C-XcZH&0RFh<=9q2XP>((tHrV#7OV z!z)MP!^1ARkU%L$2ucN84qsOpY2>BZG|LZGCsBF&o3N4C7vxRPX?4sLr>S1Qe_{kI z#{3cfH>nJ;%E|RJzp!O~N0MGZMDhh4;v}YLX1jCq8+sd0yWsRqXPkM~1s807+yxh0 zaP|dTE;#3c$6s*nc^C9ASh!$z5Gvh@HidP3ekR?n;O2?R?c22<<4EALxr_8`87gBJ z0#d{IpP#hypP#t$pSO+tGdBC)t3IT)>HRE?tf{GMK|a*mw3unL4eJI0&f+FA3Idpxb6+n~`McC7~!uJ{Yzk=&Ch1G%8f&C85h4IQ(-jiL#@n1J^LV z3!ykhFpOjF47|X`*8FE?=m{&JW=djvtM##%^@ zz%Axvb37-8(#QUMfb*?Q^Pz>K#nL89iL~@jNT0wm*q(HAJVUp3&o5qner}PM`YJ2e z*kob}1SYl>wJ)D@+P=(xHw|KQ11*)kBsSNyjzT;{)*4mVjgXtcE= zjfL?!l?7@W>RJ4tKtur1sIIZ1@s;zf+6s^@hIZ_?p`94N(ov>%zl5#BbzCl;pWC0< z{rF$nGJo!c_P^ABF1#?i@WK|)ZGTr12e7mYX6oiv78?A+F!GEhz~BJAN6Z_Q&%l|X zqye%q5Wv@lfX1%}`x%9S(9eQ?n;K$2!v9F@-q#sHU)9V)ILu_)ViV_yGpdr=)#FOm zQL&(FO!g;aLBl1_Yg*7KG@K20>ZEjWYQm6IPoC(b(|e69bT0BDS>xv}3t0<>+WV^6 zrR|1V?b%EBGr6-OWfmKIUyqjiO)WDm>UR;96-860T$!}dAN&>LP#!@hxjw%lxf37d zxy`V|=pBAGien8*!F|!5{4~IOlOCUGL7-L8SxUWs8KmB`2N4*_sMVw%_$$QOSP~aBn=oLS?RRLJ*Dl0q(j+KN z+HXUXC5$dhM~f66&Ss&=hI5XH0mAPOqR0dy%+h7=;9nyIn#@6njgmdy0!%@tYoZ%Yl2G-GAkaKN`4>nwW{rC}o9^^#*gy=u*f~H(So7^fcqn#0G zGYkXDD6M5J1S3uyc&&eCJ=lcMgVWpKXbh5z1c_mMN5K432J4lh?vEICIimAaVFlzK z2WU1CfM&mqpapE&l+gF6sVRXxCje=`4HQt!p{lviK99*ekJF8=jAqK>4a&~#p2Hs9 z3((bner`+m@%4hUsWJW(<`;QeXxcwN_qgsBKJ|a<(MV__IX68wYn@wgyF!1!+ozcN zzy}-tqPEJG+Ub@pTU^{tT{d^N;iGxd`SasO{5gh?fEp!h!Ln2&Yw1+UTH4y2oHGP< zKY}{&Wa|nBV80D=l_6x6515nMNYakbQh-|gmWWXD|MSk1aYFaBs@S$&-ey=fLvVze zwk5KfCWnD$h?{E6gX?mf4r-s3P&vI`HfO&>P(^%ni)IWo+V6;pM#DDqn*s%FZlVBP zk^r&Wgj^IRX2%K@v8dxqb=jQ#u2k`?P|0I?lymB zat>72KBsfeIp<99fBWC$lsH@98|$|4yw`D9h1VR97i~{|sa(wL2yEF5?Fb5`(ins- z92kWC4l#(p2%n-xtp-cNeutKXq3Bms<nM3k>2pgY@T`2E=1*p^& z^YmGB8#TFD+{WK=YxL;&8w0HN+W@Nwb_zy1*Q+TEz6^uX(@Hj`8!OVLreWTG8=7=b z+4OEt4o~Oj+78i81FS*zW}~bG1=?s_-yUk`|A+jq)38oku13t;;>RLl&FF9_>%Cv6 zU=4N$r=h8Q>GC<^F-;w{-v&)jf1WCMZr3CAFy^}-8>tb`u?~sjC9Fn1%R2B+`U(c+bpX%gjUJP%x>&kwj_{K~hzs%XJlDxM z2$xQ#xQuCEs$OnWm*o?e&k+wzV_>MO-ysZf(5ac{PebCx>Q}2XI)xh`p2zA59D`Ow z1!IdX5Zzg0`88%cnIv8P4-be<+6Ee{P4qj&YC$Lbrw@U;62_uxAS_K2SfYV86JlNq z9t!(gl@*kuirLxJsLpUp<)P`Z$%6yTG{O>CZSS>(3M;WPdHLK_7=ir`jljP$31@!q z?Ah(NfkA5!P5%Z|>v>e`IgV!LPm_YyIZdb5r_IbtUDQ88(_bg)qPDj7uGE0NVRTlB zEo4@o=yK~WJz*KHH7XtYl$rnf@odWmW^zv<*PUjfYV(z@st z0(i5}zOOLH{d(c!Bm*qy`;x1*bh~z_6BMjg?`}JCYMIPZk`moLZEm%<7NF-wVLYUugslOmDy9P>cNk5~S5L-- zoa{CO^H>LdVT=ci6g=ZZwP?}Gj$uka1@Otiu+ZHr#7Z%j>&3N1#p+<~yR(A+oiP<~ zxivcFVs_nG;cZVXvi5t6=3^;-fD?F2%07vCOxfo}YP>Qdqu`K{_XP{4^V@zQBMdTV z$yxsVM(vzlWMVFAHS&xM=S?+U)8D6U`$19r3R9U(S4V@VsRngi4D7Nw#ZYpDpOF^+ zpVR0Vi;oY>B2zTTKm#j3K<<6vj4D^AKe^MmpRII{Hz zwEL);T{xp^P#~-tnPNJHbq44EQPpB2PCByM3YMS^v$LlWag!fXWJ8|y9>BDd%--`q zrJW+cS)oK}2%Eu?>XNKWfDX0x67iG~A!h*^aoCJByyN}nnG3DnSjCH|GTgJ;qSiTt@m&vd9Tl~?SipqQipi|EA(?o z_I%0-@p&G#_k*6^&g|DHA?oEh{GAkw|BfH*`T)c&LLMDt{VM4bmLKV*0)&GLkX#M0 zVR+y~=bJ>P2`Aqg!bxsgX$_62tTN7$n3=A*(Zah@Cdg+}%+E9Up>S(ILBW8Cg?D$9mvM!Bt05E0LX*%xbwWiE6?{8zUcVak^Mvpy|XdWp^&x+Dg! z5pBbqLb4Exk!*oW4w^^dvQyzwH{FR40|sxnx+LHCVY3Yw{N!uCd+fIBzyHQ#gqsP2 zw;ee2Ti?Czsy9Ec34;*v04?{AmzH7fgD5on@E{5mG!&Nj-v_*{xB|cyY0OR>TMxhH zgt4`bE589-M`3jXNyu2r)6DlPj~K;i>Ob-^dlbvs>yMZ6_`#1_=?)(M@gw%Q#N$o= z*yr(&{ZaJ5@)pBtQ~C-oO?V_nW`0XpGvXXKhv%p7$v+YvpHe+uv`3_`@3vM|xs@~2 z+_Y!+YrPj$VM(Ywn&ke_K$&E?hI4VJ8Ylmzv(k45%3PD8;O9UVLo{j+b1WMST((6Z*TebCq5q3 z)kj{r|6~97_cwlVV8<3@NnKx+EUD|OHCaNgw~TBBqS3*PSA!tw53M((!kOUf8=o{3 zLR0y5{wQqvyk+^99l_H5SqPsNHhE+rgs1MF-CQRoHoYpA&p070pYBZUYp*St+TDeY z!zSR)+duT}Z@uw`y8@QK_Ni|le*Xjay@{+;Q=rFSEjPFj-t+rViVGPbSxFy$jiRu_ ztzkLVamGUQQWK(u-CI5t_!c-nTH^d|{>U26-{g-%|6PDAV*blJtfFv^D*D#}>C8m& z$V?QI0#DN2#1XL%Z&2V#XPwY)BbXL$I8aW*UDY()^QW)5_3-=u+ky84z3F4`yz=3{ zJn)*ozo2OvfHj&1*%^-3r(q3-h6Z|XoQAW(ITi_I5 zt>N&gW8m=dCxpYGWZqbr9ezAGEH%#twFHamGNd$Yb&$+_*=G%hQZC?U^{JXpC zQTBzm`(vNSqknCs(lc-LM~RicGSs*8ula1K(WmdpjZ2tfslTfb&GM7s5hnhL@CX~Z zJvxsXlI)_* zW>AtgjB5tXlp*OEP~}|(Tgvh`7aCBu`y(%V>nlF_?LYsE8%-!=yN`b8JD-04XTN#f zj#yKzj2W`2a%-p5QQH)_-&558?H4~PO`9WvD%lp^xw`(LxRNR-Gggr{pFd1R2&&~)uPCD z)&J$o+0f!wNJ0EXgZ-L?gd|d$yd`h-FcRORF4%T4RF{&2S)@?uEQ~`*bp5j-;URQ!Qklg`0;xJzv|@s{jo>s zt)I72r3$>6-sMK{3NOOHMf&BEmPJR3zHg5^f>~8n3e2YVL@*C)INV0nCb#y%-=1LC z8`T`vM7ddLk{t1if@3nj)nSi68E)Ksk*2iKTcz#kIpTS03$j{Zd|zHFH?V>?k3p*? z?Zq7sx9~q}9MkzjVH~iHcYV>Y{b0)T-+J*uJ-^SNpABPg?Igh*))6I`OYNu)rpRfP z_9k1Y3a=AOe`Rram(~yO(t-28RE!vPG5@YpWWwXs(H6z1=iXI|25K!pxPW~D?A(TY<$W?lT z(x{VL`3srJ^_OKn4e%Z2G3xpd-wbq3qS?W&ujQj~ZyagLcXxbz1aK+^x;l6`*<(mX z)otmW&{0_-^hgwpu&qaBtPL2~>oGoxj!ad=Zo7tgm2snNZa1Qs1i{r`cc!#mo+Psm zwJl>^Rvbky*N&n$@5%p6!~#jZWm%_p7n|wBGN%In*Q?!5S4nON&0CeLBGtIN$m_oq#edinU18 zS8t!GL7iMkC5saS(rV-jEkPjC50!N!l6S7K1`=5k`P2|YJF|jhhja@t17~9DCw78H zc&5;6dGw`Nfb3tPkY%78%e=t>gs~kvlNROawgmfp%AZhD(tOg=&L%?2a*^!Q(jZoX zRvhjSa3{o79{k$J_9pqp{OYgsTcm~lr|H&2oJzS)b^Sg0TMd7mQB=3tsZPWv{K!oL zK3=Gx*{=9szTVX5XlN!tq7*f!a;xR1C(6T@UrE)sWm|Qf!_Z1VbTIKEz~w-I)j&Wo zq*#nnq&U^k0-m!O3_jVG-TxhM?DR@HgAe_I(Vjd8GD8!lF!r`3#C6epa#^jW}rq4NjYIPK{Ix|=is)a(60urWF+7o{%#B|*Jue`Mg4(=0;dLU zw*)tHaL;rcKD(y6f?I(xGbl?^P9O6l1}MePm>FT- z&dh}Lf}fo}%+DsBpCPA*`5D}Fh@aseCVs}{L}|g#Hmr@G#k_5t=SKeb*{sTp+$$3! z`w~eOTd-?+|KLX@!sB+iJncPlomR6-7r4@mU(PP}RC9f>T5)94Luahs6O7?j|^8mzeLeS&$B8k=<(dhN9ix zpT~^~_Libe1%AHwpIR@V5A_B!VsK-PP@}dn6=VHJja6Z&Egj1D_G}gBr+wS}ZYnh7 z2RCGsFU^XZunuq&R^}CBnNU27iVd3fB6}J~Bp1aY9@!z81J>e1U?dYn6wkNPtTiPp z!X=X~Pqq#O=pw?oZTL0;Fhz`Egwy6L;@dVi2<)%_sRjaard-@#j!3|YSoheByOn1e z*xz5=W-Ud4p(xvCq z$7wtc4O3Ov(v`JFWZu=?ZwuUs1EPqrRhmQYCl)F9Cn?hX#AQc9%n&jyaZ6M5w#_X- z5C;wst3gGCFQg7URIo@^MO{#wLI?F5yy(P+hQ8c5GzLZhx8@ciWBpl7FRhP`J9ju< zRKjt^NrmJ2VYF8aqiYC*-N_TAetGm6&8?04>GrWi{iF{)Mg1c7=sxhD2I`+EvSSz@ zk%)dt;I0$!BV(-F6ZWwZ;J7_=hp0*E7nZ_hBA>BpgxBhi6WbD98K{Q-LsaK9ucLKI zjTusNsK&o9yE?t->NMnS>ldj;KTl0I^TQ=uB!SVLTjT*>P@aCfER|R}^mQZ$_gn5o zp6UbXY;<7uWo-kyydeW+D?l-mtstoW%CDpXlQsxWW?Dm~38V-chi>b58V?)VRU6kB zj5|yIV>5EOK6~?gEb(J?su1)3YZB5qX<)%NxG)y?2V~rZoS!Iq>uRoxy(O3vbFAq{ zkU(alpM##>*CfkL*)b6biZs3Iun~1aoQYqe5z^jkY}1dNZKHR@;&;l$Z`fA`$xEkw zQ(I6#D#^=>M{pu}F<_oF$txT3aYjC$0VA{&94> ztt1Vp94V0WBuSX`nH2Gx_Wpsh5-(Ngp@dzZV;QqYSOwb>!*L|c+W9escY{i8$`sr5 z-2A+PllQBp5;vG)MfDcB4X(9kk)5ZRpkZZf`sf`0LYbuX&ec}31(fgXD738z??PlB zlb2YZUG}{&1q|#wo|{j4_f)RBZ~N|+)F|59s2zPc!MM2JlIZCcptc*y?r8`c&TAu#5VX( zv=|Y#P4PBYU`3?Z%z9t5*|ke>$~V4JLTOQM5ir}s2C$s4rkU%6Ync)eQ!Ag?v(T1R zNJWo4f~q3x1o?N`64|Z1!;@~ynna^KNu6UFEIU{F4(pu7RCV4`mLL(gu@wSgTlq9_ z&E{N=D1`BS_jzcaWZ}S!@*mJFr6Oeuvib2>GYw7p;B#G!J&B&0f(Z@={blc7GXE~X zi{&!6Aajfb+M3le?}`tSVV6tQTf68oq(Mht>cs(K)U*nBut|W0EVAQqs}Xi*-^iT81~#-38?)E8D=YPm20N-P zi6ABP+-4)gPdIk%E{MvI2L!Q*bLNL8bk4cN8yn88DwGp}{c!k1-3|QtB7TjhpR=cT zwM@#Qx$VgYBf=sDCq%e87;G1?%dt}bJ~)jjilj3a;=pxnzH0Q zR>FwOk{hiAtduaYHuqy-?RTD<9M-Syz{DHqN^xneanE=zy_7YEvRN8~uscYWhN*1J zjN(%%J&KunorSm4+|+fPSDO;oN@UjHYEh02CKo1zIgA5oU#-7{bgSNaTV{rtvT5%C zXy_tcoS2`SKusmX6>>L2*^7JXUxz0b?JudD{Jsfca)%8*Ve0#nJCiR>U=QOc6(fxf zB|G_lVGJ5l8)0q)g7rT^f4qBw+(cAFk>^aGiZ3iHx*ZQbhI+rVMMcPWI`91g{${H9 zAIgfZ=;Qx65ss)`Pi+a78ELHgm}NJe_kTh6e)IAFUVgmj;E3#{1kVH|SRY#%OmikE z!dBMMiFLd|^~y6(&ioyiEPwCh9_CCcRRxXBe{vl(dBkQX%O3)XX|JT~he|V*ru1zr zNvq;Sy_m}Bgd<5n76~{$A@YYNb|!CRN|>8O1b;UwHuc^dTuZ)$dc^xu@_BsqZn3{D zF#(rk%RFlu!IcpX)3;#i){^=qZ^Hgo@6VL-lM53hMQB=#jq~&=ekM#^6t7sO-IOXQ z67+J5JOcSUgmQ$NhuK$&jBwqhBfIEabCUSIRF`BAYZp^;8V&E#J)YxQ)o7gL>a6jG z`v#nc+VxgyM&x>6rr@HV{<*aM(t@o2Td2QfOWST70e$FFR3%G}v##G{7dQPZveC29FP}TR`#7nN#?{crpdu;$vl}$|35YA!B%QN=amDSZ}dh(RonRv4Ge1&nJ#=7Rcs$+TIFt8M8n ztC5Z78@kMFYN|c8;<&8S%Y#v(;8-k+f)3U7$oY~X9Eb%{4DrBxY5PU3mQ<+vxFlJN zaiu0_c{4sauf=HBEFeppj%O+aIEx|GegpTP00k2h?FmD{vfcOqo81)y$lTg6E}!c- zfIB3Y>ho70L32AW5?LP@C>d8Z(5D3X_LR6cYH3?TEgx@HOJ}re8SryfA23ErhQffK zAA>M7;A7z?j3BOzC)P*Y+|ba7iGA|^el6~AXvkHywT_vjr>oBLLAxD-K_67*a!f;` zK4A5t8o*f}^@x^+hJAI>uXYdum=NoQzpUb;-87#=nP692(!cZz-26cLwKr`UH|Y&>g1dIZxQ;$o-R zH;nE@VFy!}TaN+uEiN{Kb=P)BF~g1a%glD2_YAOZ<6?8p#payrjA#k&H0RtYY?dOH z9P>@;5rH5s7Pd=PPdkiLT&(neiFNK%T=teUJ*(8)et(O$=Lc;uO(LyY6X*_Y-F+RLY9o1Xwz)`eT9eAuBMPLjKeAz@vRAXr1BU&07c&upE+p7;es<+mGvt3+u;PECe z0%K_453V}!5iJc3{Gmb`W9f@}q+WgCQN6Ve9BbdI1CMQV5g0=QKWH|(sK(HYk7#LV z;IXx@-d=s+QN3{ojszHHXOqaP$;tMl$*N<8sqt9N)W~q_LguK|s~b1*LlDz#`I*#+ zmJBT>h{CDVokfp#)_OFwSiQjNt)4l0Bntv{le@Pp)%ZyV*G|(M{@v?ujOpY|NtZ zc~XdXkw{>8HZ%8+d;Mzuacwye;euE7!a`iJmqHsh+F5KjxXP8Cj_WFC{hJ@4B^Hp= zT#;BHb>NDiP$+asL80zB7k?Lg=qB_j zPTO~dU!5AV7UaoRwuO!vw-r3>Ci3Uh+ft$_Idug$J6(xUv{ks-sl!?szHRCgA7T0M z>FeNpS1-Wxt`&LS1<(%253YccPaFO5@RJ*M!YkL$%1(H#niC%GokGix%?Xc{W4?Be zNhiG9XIfe8%6zb5*~|>Skw=LJ!*r1HhIb%AP;YuUtX*LsR*s|k(TURQl^VE8ex%^R z2L~LKA9jabnu#5I-EH~K>Cz!LxGdjZxf%zT13;S$Dw5p9*>qjpQ^zy#J?ONbzkPAcvC(+?8~e#;vuiQ zFLUYLe3PLVl)^LvYYE=X_wQ4#K2%xF6v;XG#$rMncq7>{Oy_;hJ2U+wRib8FXnrQgdm(t#WC; zn-yNVG#{g*lkC!buykp@aVl%Sv{R_RRREF6VMTpqW`un>E5bGiwLwC9WUV0}?R{9> zlW8KdtL@cylwo2m5LSkXb#h$>ElpctVltdbLDmhAEc|f#-Y1eBl{=rbAXaA6+ho}; zPVD|)ei@|OQWi1(YcAQFeD-3p1x-%d9RrFL0SptniTC?uS}*_DQXg6_`V(<~zuXTk zP$RX^4GNjLq=Kl|`oDf_e$s;&4jq0pz{hrq;aRMM ztb5gqg(#A_#Ks0i>Ms_+U{*<9EFghV=dB`wuZu}@Sy7R>BEe+!v%tWKT$a*eYNXSl zw!)bcYdV|Fd;Q7(+@JW*yO)y}_gh=8%Uds8>^xWV^n!)NsHBr`_|1Hh>?T^UsASwp zPSn@r0wV$@C91#X-=eZ#QJM%yS#f^|zWoGx@?3Z%#t2|qiEXJ4-)3*C% zjB}Z1rBgimiodpWiqw*hpFgN~9?7b@cOQ?v?~CV<((EyhfDpMd5&U(Zl_X9(E|198nxbHOj`LNLoac zT@YI9rTyH#B?Pb)RmHJeia>)?9I#&o#rVRbZB_#97&}B^5$+V%XzQ5I0!|ahX;R0j zF(}F^T##Qlgbe|93GADsC9z)X@OqON#Rq|fp%haR05`k{&gx&k6Yn9GB8JYY zsc)(8Wv-AfPuDYsAMDobn$>CzvoV&9Ggvn<0gGi{gAjcYTbWFYH6yA|-0%04nvyoz zf$ndaI^nq~^J@xypL&o4{HwHa>~HOCU4ters|x?6X78%srWrMIWMVOHW?Odqgb9B# zc6;Z2au;|kxQr&wH!8?bi7>E6Jv5iXJRzVr7CT)%mQIppufE((C_M zkcv2>w&`t-GNB-o@xaCmsEqlR!gz51ENX9vZbnK}knkS9WZ2Kp%k>E-LfB_aC=liUL0hZhSA1S>9X$Gp2hpdDFmUSMm5(Ze7 z+-oHauqaWAth>Wj_y7sh@A14C;&o2Tb|z1JZm{n%r}~own2_FPlcChN7W1B`Io3Un zBepDPx0xpk)5fKwg-++$<#Wcg%Bh7gMeQM;R6BJMyWK>-Luc_^PtLp~K4HS^h12%Qla^!q>dac1&*cgd2Mq=GRb9 z)&x-4(m@G-Bto~CQ}$P&`6$TgPd_!;uXRCP6z4mIuY1V2ld+b=l(h1Dt-w12$F2MU zD{zRc;2|q;u&v-nR^Vf^f_+9<1p>5{h&YWfcd)x>tF|f0?A_C?w(=nris&jljsR9o zs04}z17Hg1Q8o&69Y8Pri0Nf3scV7%=%ypVXEY8<*fb`aW-~Y z#@W*TlySDS;%w<4XG;e;TROZqx7i zPsl{i$cA@r(i_P{Z(BgCVA?8@s?EOJ6jYLVj#f~0f}X;c4z-@QkYJU8&GbHan{>1` zWuC0*=!-3BCmOy9Po%9NBVm;5`7qg7nKfgT7_T^SP}4gc*0B9S{%Wh=a{Ua(Sd7sU z?Kck3H>Q>imp*N%YDqd9?F5yqY-cn?`W7exnkw+vgzt3=njw1?K*|9r2bS3lK$jUH z3?pP3tM(M5VSzJ8dy0S?SsvPj34#e9J!J*bY!28{kObcM6hqrq4H~IS%C2}%K{_S1 zj{Mz@_&SrA7(DfsUnnXx@^i)3d&=<{Je!$e#qz) zrET8ib6F;Ht$*B)KjN9XhNrZ5hcf=D;82@@y>s#O>xMXJW>^B}%1ejU6$mH;j6&`CQf5g=G%tY1aFWbfxf7mAs>N{{zHp9wt0(J5!2>sJScbQ<3j`TrePD+gI-kNOg;47FstRvD- zlBm)bu`JQesVKD+3V1M~5$RDG9stix0Gc(!doW3uVjOMwrNi=f6j?I>%zkq+o2op5 zj#bCY*)GR)O#}~VlFGNllvridslpv-hmC+!_AsP+D7b}LM;ER1`(h0H3H zRI5B$Kcm9GV`E)Wt<90qYAav(1t?vr;jfw*6xMMexhT?E@t2WlqgA6b>=z)Chp>hFpJMzIqkb+MkgU$f#Ip6T4m}ej-nhBB#>6> zs3S8v8{+0BPaUNMv4u8Wq>fT%SoXm);yF`A>L_K2Eh-kNqmKBwBYCJQoJ||f_!u@a zl?TU`R+&1g<0m!14;2XE(-Fe0jENy%RoP(P(213C`Z^ssu;hmw7|_$H4q6LnWWL^( z+`&QRVPfd)?DMvnOOp55#v1F(%q7_&Su#K^@GpR6YR@dp8Z(S%f>ZWXJZ@^y`8_;s zac1AM=h7T|jrMR$ni~;Q!FHAX>9fXneb9J@8d17+QYO^o~M#-P%O3;^5dyF0eP%E1HEU8#JZ&mV8enBCI!p>D^n8t zN6XM1j0(DaMw_pK*0B*4tA1rCz-rZhDq8iE$Fu4kL{lvQ(3ZX+W$7cu;h(JFfu+wq zXB9PtrLR=IMyL{yVd*QKZ&8MPDwjUf8X?3xiES)l5w{H)w(yND6wZ_~Duk8IVm5W!PCl{9RxU?Yd7K ziK7E6A-NoM<{TpaF8IW?>ppR9knIM*u$I+OiRrQ}7>2cFUW=)-4tRO+i3@&(+@+l3io3{6%pl+{Q-QlkPg)yyA=8}L1UAhneu9Eta2L44I&+sRr`j@8rTjl= zz7dCEIB33y(YP{{IAKwWesHKM_z9}(;ZEtXX7z{a!n;+ABYkTF?3HTo@hB3m?K&+j zwhAp*?`Xa4_#N^oG-4G)6~!bVrQ7Ql)hsXZxN>+;w>adblyULmt@h%2Yk8?BP^VmWCJJ~ z@afWcoqIST4D2eR9%7%aux4vMU7;o0vmEX0DJJYl^{BZV-F`85BB#It9HhvnYp~x@ z9KfbgEW+0JxVi=yH*O%il^9LUqYsjjt|5-^++ZSbgUTyQ6gQ5pA;WjSOh0L7j>Z&D zlCJTs=_b>Tv9QA1YC9Y#-q+a<$8Q;IG=3n{25dWS7hr>Uy>I3uKl*Fjw>Y)aBgy>B&v$y_!6L?L86uE-mB!002XPX@(OFMW*8`*|} z%Z!K8thdv|8hjVl*J;B1_>6K#pSz3n*WGEtPW#5|_)&72s21R=sCaBRP534-oYUPj z*>17DN?+P46rd4qrX}Mu0=Gjf*X`2YXS6?(BoOJ_M#ffovCg^G!K_vAxyoI%6T6FI zsgt|tM6MR67_moqRIzNwR1+vY2}8gT9_YW0VKb6-(5U=6^r zHK0596%Fp8{u10n-B%Q&h^o1-sBx6SSJYfRC;oH4Q*-s4thstlHoAJ^u-We{$klTK zM^4OftGIfaN!joAid{V?7Hh7aIu2#OZP$Sb=Kkc6t0y9SyF(|&X6Lwh}xn;)c7kB;=t!KM<>a_5Nwqc-cm~lw>*q$uUFV5uWUT)so9p$u$ z1{|roS^j!M!_D)tZOzOGnjUiS!b;5yiAOd7|8K;_6=tIIgCPM#O4+HIiByK}RWlQ* z4E?LYOvL1!yD;PG*zvjJ$k3Q43%c+`^Ff4x`AOu*xYx<4pi=R(e4`2(cx4aIxi4qd zqHaLrYm2Cg?EJcQKoS3*B`3^XH|Wi_=?-((jf_S8u6+^DU9*`lzH__Dm8zOM zzE6GbQYOe0=yEQmWH;8`P13E$o>tByWv&m)l_^dkkxt&`Y)_?hVU0ytP4W+zv3X-e z9es>I9RACwJcAKNMrHF5#Pa;qB<0PRfwib7Ew%$2_5`iwRWs?#8u;SMXGUUUepWPs zC4O)HSz_dPRAY(82%1zfsY zGpXS2qgO zk?7OU~alv2}=MlizLW|}NoM&?+cIG4(0d4lL|OU-|d%TEa- z5mrFFU%F%YDRnA8rCSR>CBNA(Kl)$R$xlf`v|+a9+d84H3^(JO+RX1I3e#BSOC37~ zXDOUj%+6NWwm>lGK3umPj`l8+Q7nW< z`2`?1qoA4b8_3Oe27yOGOBP86%P;V-N^5o6@MA5;Us;t;(Z-34+k#iti}jEkhh=G9(RWlT%Fi9m*8r9N`GOCbSG&y zsuB!pc;ARl4+Rz}Gyg}7MdD=#i&RW-jYXjwRX4NImodIQt z?iwZqt#@h0NANj2`}&kw8g^qefW(CsoAo;lTAF?fv8aREx*i*x`T8j1`QDDZV(N5y zZ^s$SxpGI;Fz^o4qsFth^a^}aT3rJgc~%x6A%+E4^G+@fiV1Ks@E!TT>c- z57dK&1>MR0XQVeY_Ga%LH%je5lD9h(lT*_(q&c47(A#+0>6^|t^Q_H}JA2DHk3aXk z{=(wjg-hF>_@s-rKl$PvKcgAhA^y)3r=@1X`h-@LhNjK!k(v?f{=y-Pn($|g zSlVr9)-OUB$%RP=rF^uAqr&|&yy3&LRb;U(S=gDR^k)0pCDUG$gdKraL%zdZM#cEM zJBA=R`EUT2B)Iwx__+AT1BFCsm%alOPv(i0_DRi1ce}sbVJ{c?%TarIlD~Y)UY_VL zpSG868b)Qc@Hw60Skdej;u|Q>37u%u*rj&pc*z_2j5Tthim@^z-3uzLM62v!_ONc- zfR{G0gQ-)y&WtY ziF&IFtKP0FD{>39dZUlf+g2a)|F9vS?=OFCFZcy&7Vff_1%J8QUi$v>S$jFpUp{9q z=laX%?d9>j}9}CN1{0JuRF3wQ{Mtl4q^M{5}8h#l7^(+m*dNy)Wnk zjsIk?NB})kfC5{<%h`H5OJ%x!5IlU*fae;YwKik!Nb<+= z5nt$bOuvuOIF0UHJqn|?e{JYG=HcYuQ14+~s; z?1qx?S!U-A68`>@o+HAq3M;~YU0KmYaN;*C+JtcJVbR;?irz@V)ycP&y=kxEWN87B z;_l3|t!YTW|KiRpc%~J9F;4G-LQZey7@H9vii<3CVR59>{sbF1Z;wO;#UdZ%2kn^r zpvDsPQppcXPQ?eMM@8bcbBf$1LL-o#prXhf39X38Q|lqg&l9#8b-*_FI~LM6@^{{(1tf+Me){j@C1}yHEENgiy~Pie`Bjemmcx*WqaX5#sb`v z!4=OJ9P|;8LlXKV->NdMLn!*a|05+)q92@DqRA`dN6SEzh$ySViYV_YD<=69LLZ@D zY~mX7S8T{w4fS%by>M`(m#^B3Vtjb{TYKT?OE34?i<0qV*k|S8ud|M(Or}kyf73@$ zOSEwc9jUdPgueiQ$SBL{m`}R#Or4hbMP*YG zRsWZpN5*fN8|Y9KJY%0Qjv(noSpHAr>AT2V((XgMP}RGgNzva9cktN0m{h^e)!2el zcxwkI1Adn~q=Vr1rj8B=wzUr7fIt(KOw}KII%ASRoq;t52vi`qVz42MEzW9t)D@xg zhpB}*w34n4ujfUDvwi-YEN<}q8;6=bf!^Q1K8|>_gvp(^BQ8GiB{JLJ5VqUYNf$Pj zqbmLUk4-Q3q=NyOoMXL0bY2yrd;TVl?h)-;?EipoW4}kzOHQxyPuWD*<0<+ZpPC%( z^f88U@4bGp=HH}WEW9|B+L70d`o)GutcUqUU$5Ue3!zXfMvpggbVwbs-9@!<&5~fe z))to0bePq4{%;^g5-Sh_!oAgOi*Wh9;-#-i=ZU9+y?I!*SD*X(4+G)+apsdtF`2Nw&b+b%d91=)%-}2SBBcKzZlCmDQk(iff}-! zl}pG?%JW*fgwX2p^axzvIz1M$fdgPmY(G55e1t95esjeTpcTHea2);pxftJ>b~1O& z+fL?=c?9510$*QNI~fMk`|W}^9w~8w=@`zH9hu&lv0Po(JQ^jaHRTIPA{YvO!NGWK z&Ku`g2jH}Ojxb668_QT>qY+~;gisu9yM#5CP*Q}85@Qa2@;O8t5-3OK3yHEn%OpvH zfvs{D44lRI^_b=?X4&#}h1FofrzR3Ch{c6cArf2y$m4&j=G4;VWV`g$*5cw)X={e> zrJdOWDUTeQ-_LK3kXBwIV$b^Klx1ue##tyn$_pi?7pVnqJF2aYGSA*E6D*DlPNxM9 z0Ku||JyQJ4+&)nD^~YMYr7act6F`Km7htw+A*IMHnP)Ftm{9jP8vP;y6{GPlNUrkm z|Czdlc{;Z=n2L%_`C3bas+LwCE3|x0RNIevRXd!{bEZ#s`Q|J7or@DosZXO%1Cq3w7` zTM|KdW4_QGNX(08C1~0jLGWkLUXc0o^|#%ovf)GFv{2oK^feL{D;{Mfmu={6Eb z3h}f{ZjI-hT0{}qo?1kw7E#PhMlT{fL83+U*BRHOl;=3nzAit4CyrQ*GiQrZ?Qn=j zZUAi>QBPq_(i20ZYV71>YN~JdOmosl+JzsRuC%9dH%Ck>d!ur97wswKP&2q8l<+nS z>)?ja{xHQRGU!kPTdn-#OPjLbP*Pt~}!b z>l(9Qlv8J`gSon3d7(X(>Zx+TN~|GyERJ5r@`nw{|V6`w7jS z!&J`Rk!dD4Y)~Gy6DKM}Xw33=S?R~2nkv0WrVYvmH;CTy4{l&t-^8rWA z%A-$xa{UH3QH5{n+qG*jP+ZTQ_fnN@>LHM;J5NjAqUnE|O+QGB3B-0C5XjqA0|e15 zo7xgf6dLLnUNo>`r_1na1Cv7rWM7=W0?N)ry2QNGBgS(w>ZTMJ%~h83J~U;R{#DbHF*%$(D0aGt}4M?1U9@8gS6UnUpo^v z6bi$rBnDUyEGR8mQ0l^DDzKm_X1&QFR$&Yre>s#^Yg1>Av1S|*VQhd> zs_n0=St&6VE0{snz;!BX)G4m>)4+9lKQ69wioAXr$cr-pH()*5LhZ&DroD0-5ot}8 zJQ&lm7abLqN)7u4_kV_&AD9(OXLAwB{w%-Ql$zS93bjUT9D?!{?J0UF%C>PpAFlQq zc9LX&n9^xfIL`rqTGy7Xjs9y|hi`s@rYJ#v2m_o%SCU_E3XKMEpwQYWZ94yHKKDW7 zxq{?}LpuMFz_WW%5M6$rbDCsUWvH!LAuCnn1{q|lS*x7*7%TxVVB*8^Hsu)CRhak< zlRyfwREGO}< z4*mIQranIn?fL0|b55)~KfUx)V%X?3=frB)Qqa2i!rcb_Vk_DD{lY6LVCO7yQny48 zt(~s%Y)j@My>(OJG88QqQ8Xl0p-kM2<7Bm9T$3EJ?)Uy)1W%1@vJ-o#>R)13k8)^<`Cr*nA8PK2jf9e z&rKt3(Y$xt#jIaoxhUIgu{0gvVFl?{B|~U8#|!(K?|pG^a(3PmkUx5m=Z#!^xR+A^ zd@$(Pl~;Bh!g$9nLF#epUtp7#I4UPphZgY_c*XU6YL@0rATYav)J)RyrK8J>c{5Mc z@7hbZ5BKXmWT#RpRGgruxm&a?a8q^M)#-yq$_$wXPW4T^(mtahbVIYKKVr)kWRrZT zLx#m_V)d6$J~VwXOd^|yzaNuc38X-v<0Ac>60tdfZ2jVq98CH}F#j^pOLJ7=j1nvQ22MRz@p3vQ!HbuXMs0L^(+yiW0P+I&= zw$QNPbznE&O7K6|rdB=?bcE?H?L8phAC0E;`$>V%y>?`yz;>aC5_)58qP9g|{B>)Dt1#h|G}|RG56K!KiQ#!0ma-c$JMbsNN6nLg zjCJF!i(pSXQkk>?fJ)QARaYBSNyfb}I|eb7GKl+sjQ6xWN)Fcn#HK`g_4 zUOh>v5)sNa0bdgz#UNql#qL_Mu=Z6{nF}j zEz^vSm?w%O!O7n+I`eP5XVe+i8sWfn*yygv5wm?(9_lJ|xH#0sOdpn9c}Y&>laq=z zEK`A8bEN6p>Wr$E)=snE>KMUD-mL61m(4+GYJl^1qJR-{q?W)9%FXR_!PYg$AQ$Hi zr=5vb#$j*p6_C%S`wHN&IWO!g1e^m`)D<2ayA%DnfZaJ^cg|KJRTbAwB`~E9XTpK2 zYCCr4D(ub`*q#3kv)B1I!tPw;xd5i-y$p=wH;0QA%{s=_tRLz#7&|_;rXq|_lo-c1 z)=K@|O+k0ruKrAgrNj@j4VqLC0!<46KM|m@h-)+!)>{Ql8XxL& zSwnC!uybj{Z6-1mEvg~Mtr~L5oe^$5e*(C*k04V|w_RPd4!XVD3b!*6ZuPx?BRrZK zPH_EJSO7Q9ianqoox=}`tnJ&(P$`!yF$;9gE_T9KT)q~?i+waHCe5-Mkj;CR`O^O~{tpqE$1mUTPPjB5e4MO?+J3W zolh5hRH?rYXI0qb(faYL@%EZsW4T?}H6ApN!eve)kHfBE z_6##$(Lg-s4^CAlst4^BZR?>rzYI=;-{MfBI+IK6JSfY7se%TCLz-DmGm#N0$uATV zQ4#ew>c?lJ*o&IZM(cX-(em{3rwwyUr!aS%G`H;(=8h9{Ph2<5{Uy?t4Rslqajf#R zmVjPWoQDwc-Ro?UHPvru(}BiQ>Jihf`r#QgV}MR0{DUo+z=67+&s~istf`ZtWMiAI zJ7piRLN3mlr*_PA&lgeMB)>SCoF~>{?c3 z$x2z3O?+Z!Fb4u6clUSd?Dkmc6MgNOvH#VNC62z9*1(;QQzx8K+4Cf3>k~r%wdzP= zjDX!>3n!YevV{`@39c;!a&om0dUGX+tl@D8eSkz-)T*KUCj^HiGgQ?aLjPz&(Huhm zb&FmLA@mQ}O9-L=hP^yVrlYj?_x2J(=)Y+%RS5n5BG6f92B>h_52uVfgwTV&h7kG( zt&zqM`X~`xQ|w->O`5&t#6sx5B|u=8^0+y z{_q1>WyK-%`2G|j z^ss`45c(fkD~%!akLH3K9YX(TLNPjo{%?w)b_QA@uUS z4S!+RZkuSGDH1}DwN-z?ln?^vFD(MlF*_)P9#KIB?ab>bSe96D>k~q6J**T$|Btn0 zHadhpj31#_0*!H$|x)EMc*Z^8bbe1wn{<>{Ui1gh0vc2u6VxW;3^^X_kE<~ z#wR(1ey@%;yCH=BW%d$6=wEIxA%y-F_7Xzq_t{Gbp|`|KvNXGeR41TO*pn_IAGof! zbZvy&`p3DsG{W>phtRjF+{(H9i&{LmK}~(RK@F8trnDr5DMAW`EemqD5crGPKHEYQ}J>=i`RZha|cn3HenXrHLE-m_z74 zR}Z0=^GLZgQ#z6RPyL;|`&>p47rX2z@9w$EOs0n)QBG zP7-#ciW>*1R5{?lK8>q~ZxZIqo!kaN-Jh>^a&y|r>62o0V9d9j9CgwKWiapom3Lzv zn_k?oZqf7j?T(I~#}U&uYi!b%JAGCV?t%K{wC=Ee*{e22&v#En&+7m zr@O{aOB?kXeI%}o!cUq4=S$4mYGVzb?7;a7&BPy#gJ+MKFBdg2^JPfN`p3+_x?qMU zC1$>HddG;F=Zs~2V&-3wW!cIx^ELBLME))3%N`$G50@Wi|L#RoWB<*hNj zWYuT8v>?|ME)Rp%!6u$K=KkPH4h|D*375aA3YTv$W?J(pU?GPrQAO%NOeMfqkN=`L`+L2o6Qb(6r;gX1_XZ&KUFt> z4rO}ngHD~QTlW9534l-&GW*#%f8Db}2?mOjb#rGjpO7+KUX6juvN2HUjR}?RKUAEq z6Dd<%W(_LKFF>V#QK7O-KT!FGs2@()eGDZ@Ai#x&VA#%f75|(TxTHXN6C4TX>KxDu z2^J^sGf{l*ib^pHo!{UHubc%CRwBT>1aM_kz5t^oxfY0)iiX^^!04#%T3~dPTJ0je zzNpA1zZ!T+Lk7Z-Ye8@rfPA#PU{`V&fcr!tzNc2th^!N*R?n%`W7=DN_0$98KQ&f> zJSmu~*m!Xt_XlNlo2zIL#c&f2+Tae+wr4$J<4bv7ZWhbf`0`Js!z|8fi1S#~huz&Y zoC7D9Vc*B~j*Y*uRc#%bV&gyNMh7Vy>mM6m^G0(XZF5vhvsHz~ms;#keOUb6(Y_=K z@Pb}E1ihR!NnFj`I)}xNJ#h|BIdLa9BEH;yoQjA?r7!oqx(UGUwJ;m!DiQGqR*8r& zDa+31);%J=+)!(8bMhkMPX)uXHyMcRse46K9`2`jO;h%be@46p^DCzlI(K`Nvu~WD ztbgW|^y~s zCkTA!xYoQKI3`s>f-;0)#lUx56OZV0t2p(-Dtpoc--B{+#@1M1! zC9DIF<-m6XavcKSPo3v3V>*`wefT{0q{h4(>vx;UfVYR8SBF1~d6sf|__R){^a;nj ze<`hkrYdPz#k_}m=0=$}H3qo6jGWEk?w>n>aQESFegCkgaCcO+Rl?oFDW?mo6~f)C zGjSr_$2k*^EWT2R(CNxEaYD@zDY6-Kba;0zQiH z&{XfbV1l11ORHo-ic!_lb1nqAlfFkSOqcQPGyRm1T8`a`XD;2plqp93U`fBr!XG=r zecB`3)gWiZp~0?>-MuZH75gO!%!Ea`PkWTRzTm95{DQM$|DrlF?H0%Ggr}zB@L7RJ=T`rRnEpPXN zI$t#2Xh{IN@fmctJcH({86Ct|&T@mn_T81wpu2tsJzIpg&z5J}vh3ChX6!rM8AS9m)-K_R`IutnkR1j6gI8b61I@OHBp59QYk zz77+E7DUl}8Q%WoPOGzOczcaUM1(x#KjIz(6N8cMtsF;OcbO<0aS3*}WBW{z?d^fc z_I4cE&h-l+vK>!^Dzd#DBHQ^T0fo%yEst#1`X;j7BIhJ`iEKCTkSULBr+%tbQPlFt zcGamzw(G8Jc?X+!yaj7xhV|RviXsmE;&6P$*HgcYY>$NpTts>XuFw`?&i1r4Q>;&9 zyV*E1+bcFjw$s0b!#78^7b$yTam|tKIM$!^$aa|K$&74&Usl~w+!Wbfvso;!9@#!> zImGT`QBZq1-9J%5?LS3GTfcbrpCY8KUnu)e5z^K#iv0r~#oj8CS~Wzm*Vt4|vk#04 z<7&rrtZ|I1^6waBT(x|O?S(crRy1ml(Lt)B_68{|29I8Cx*gs-(}TTQ{JI2jp~A

    )B1;~0xi#jm4NOCL?J_v9xOzy2zjbGxVF*WoXUmOmIB85I}KuYLvmqY}Tq-)3qJ z@$1p9;pDDJXz*10ddvo8PCDr*KNY`zDt=uNLqk`eL*lia6OTuP|qK4dnsjCND2WwdK?UdjC~ zM6GhHCc(F(vP}d?#!|{p2o5C0=!|xcCKSyUflq2ix*?<89rhA3+8wo*kkRh7u|?q1 z_Lpr!rkMs`TjU*!GTOBmcgSc5`WiCYea0GT%xGsRpe4bYQ|YX8M!P!&i1&7qGur(R z8}j)g$F%p?_7XDM-DNK!qut&15;EF-)?PwJyU*E6$Y}R@dl|}Tcja0w0#SzSRkx=n zx)N5i2z=4TRAscgs-Ubmqumsw^*E1;fE6@kwEL2^(wNci(Oht&Gul0xP>i++e5}YZ z_o!sF`&`l6DjDsfymgkpTN%+ggs<|}$sz~ai8I=9jfeyV8STi6t|v0uh1_@cRv|BQn~(vUc@ilSN=yla*N@ z=&>QaiMuG(llz!-(Sj^WjzKNCPq^htU)7TPm{~x%R)bk!vSt<_ znnX@rSO*YZ(nU30YfSBPLS}&=XPk1haqvxejK54@{8b zK7C2JbLePwZ>r|0{!gaRVa7MKh1V8(LU9HYY1V3YCM3x6i}5P$+S4{YA#uV^E?jvp zCNWjGL!%*~S-Hx^wJUXhLbR0~{;?`mH{DO+_EBDcM+@6B(m{#^vV-UX!4pHj0hUfB z5=(CoU3_M#rShePmeDEWNXuJrQTEc_XFiUI6111n-;&>JU|Qp?iCv#+YN2InxjhM& z19}FjfY}tebZEH$5u_n5SHFNEgYeISFIv#}~%5O1CbfH*)zb*Lf zqBqsLNKU&F)`R!GF%@`g>r*qq+cY2yO><3q_bTXvb{Ni%0p#t7z`3*-2svnlMU$r1 zRJIZpoq9wIq!ycRWn}g$doFKREc;c4F1y3XfE$?f9k{&aX>rG*O~h~u>8dSMH!TX) zPZrV)_x+vnfc6ACO9ieiUxtm+)C4^V{G;W4y*Ex|?KLc&(OyzVYe ztT~zAp{rgcl%}R87zlb`3R_)J703N!F@Ni}L zlIW9A(*3cBlsCxa)K4y(yBHpHsPnvqgqyVqV(8tfO$trncZipFk{|sqdlr*98I{)v zl+3}$3)GXx1nT0o0wwG4@dCAdOrV}TD}gz+r@RSwwOK4Du9#0*@tHCLXUh5d9iOlK zdh@k;y=jX~Fj9M{l8QGE7bhMp_#+vpx)-f+GL^u1B;J5?6oqBz3s?tG5=3L|MjC4y zjgcCf#azv!&CpTtB~v04zF^#1G)sOoGDub+tFb~z)`-Q316weERq?-`iU@yXY+wE{fH zl;!ewc3o!)MVak2Vz%C05@h&Zt) z-6zyPAD=99?r@VfX9t7MWwwsnRuJ0Vp(O%?Hrj!NI)N)p6f-zJXu5nnW(Zm&4dS3q zUn{Mr?)l@6Y;f`BbB?70CbW*2W?_<%g|j``zkVEk@wg$JcL+U2WC0;E$k;M6XdT%y zDx0&URduojrfeLxyf`*n9-0~M!VvvpMM!&L*fp(jJ;j_@|M9XS_h{%J_xyTZxsZ|c zu`<8sjXA&lrdy@dtZa_+(hr)E%nbw zOQ%|JbFOrXvl0BQ}0K1+z+yhcPT zJJHB7ttVqgd`RbA*Uj2l(lF70j#pr~&rDr+HSMNro-!x0Ek9d$t?S?`=}i*$4VqW? zjQVu0ff}}m8aCBGUv=5ZKW8L0tg`G*X9VLIhc*pR_^Lq3UFUd#I&Dm#P9GbnA?@f~ zffuxUH<)Z37wbc9ofozBZ8N^~#%(Jw&VCJ9Zm-n#zHM2xWC1C;JpnN>w>R?R`TYYDAJ9FD+l-ZTZ&!m>Q#H+ise< zMBHNh4Y6(_8D~R0bNpk!FoxF;L0k`6XH&)0abq+ja&e5FL&%{WU zjL-A)kfP+ILuj5J$#6e7TAU3f*5c)IBFEQTNZy z&wG{|#`AtGtYsKSu1airazF{`l#Qt8XCO)59^)tFI}AWvpnS(^MLM#-!~UiyfmNQIZwp&%xYEYNU;~*mxg+6=31To zHmS_caike3o40ZG+VO^)yk7E@bf=kRlhfo79UUgRCy!fs^mO%NCWvOVHT|*_r)A*S zm4!_sLpv>J(09=75y#o)cPrs4CjJ6~dr4Ny*{$A#-E<^i!EUMcmOECcD+S z<-2sVJ1Sfo@+iXLlc%N+X@)vKC2q(b|iSQm+S6-iHWcVUG^7o6 zUXW|VbTLCLSJuw|c*$~Njp=>2R=henVG+LN#2T}V$Yotltm%>GTWE(IOUsEhKDqPg z;)rd8-BRL+%ZW8dQXbiIVojMjrFn1*8=bC%vE{@X7<)Of<`|ZLbSBpH%K$&Ei8cKi zwVYT(3{vxGOIZc6oLJKrRoQZ4jRNP(i8VIkLWp)bv1U23rka9MiDxX9ytJHHgDJM0 zSW}6#Wy^^**-1~iSWc|T7mqGIZ=!Rh>~dm_*@!)(<;#gRIei^*cKUy=#F{&wUazqw zOLAS3?`V|1WFlFoeSxBCdd->oODT@Wv`s}CTN)neLeh6+c*+^AtDCxIontm1Y1Ut7c8|6FDTpKcLLN9u))*Bz|61zcN>AaLvQmpHDx<6^XQ{d4p;U` z1l*vHK3ezm3SVb{G~{dsDo)oA!IzXN8A)M2t$9TNc0%%Gpyu-Kwmmgy+hv`N zxN2-m^QoOczbgI24%)`Ao_~}qF>MV?U5sT z4jSx5+0L}7KG8z%YsP*J`g7~GO_;-Ll?s{#7oBkXi<SaS(5GfjU?^&STu?KIF@zM_EQHVrCp~Ijn(6~8@zcf zS88uPd;GJ;E;IDmfKi*-WKPwVLefhecIMWuu20R2-K&i&OR-7!ih^vWwoz7#(SX{usw4q|Sm z4Xjm%<8=jYWN{X_(Q6gl2rn{JPm7UztcuK5qW2z{RxmK*)q&wKg^DoXB%SbgPR0*v z(I=blbv|^a-q-b%qQ`8dHFNTy67Q*u@TuHND>yT!)vLxX)WL`yEp?6QrGrD3WrMe4 zdXJ6Rj_EzNSv#ipo?N_V5`+EC@_O3F`|FC|&Lwza@jEww0y)K@J-!k6?c`=hj>WfQ znP}jgd1;o3<5P3H@^c6ZG1#V(LN&GZ+0cfOL+ycdxILr@)4phs7;J!**iR66SUimfQS-tef2dZUJLSl1gKHIYzL z%lV2M<137x9;kWY*xARA32%dx2>DeKG)NtnHEF(h^Q_~doTHZJD@{iqr3zTl`O*@m z2@t(zNIH$j_PG0tF!}8?i z^5mt@fjL3BlgpErMG9JFf=rB_v6fy(Ruyc4guw%l&;3 zAZS?&Dfte~Ap562=FQR)PFf~8SV?hoWDOm6%d6@{JnLa{uznQFt3ZV^UM=T#boBax zT7$)`aei9*{^%tWv72UQ&-uyO?BK#z=lDwYJ-e>R4%jtr-G77fIpdl7bdqu*VQmc; zeP=G7Cc&8*?H&K|HO|cyqO&xkg^wKK_sZ8&B8nyw9TS~oWVfy1Lb@U6_hz5?8XuD$ zV7vRNL`&h4DSF3+$?vJ;`3~?*9?OKFyR)qubm|@VLu_Kt<$~FXgnRrwt0qm>Cy`87 zoE`>U7agp_Wlg)0#_N-d-Dx-MSnDYw2~JGS%gRMMi%Km71BKRbNWP4hpZJ(kY6x}DG;HLRnn zo2p&CBJb+!t*b*en6G-)81L%HaL}%!gIn&hS{D+W2VO}f7eJtQM|z!ZuU_^H2@A!MXkUnNV{S>I*ao0`lvM>#gvezl$~21 z^RPcEQWdfxj*uW>e2z@TZ0C3XVJ^y6X19EgYwJ%)bp-m_WfBw>ESUuV;)7rLi}(J^ zm*4u1>y}1??o@=HcmC*gx4iB3yt+(-0S$g7iR-xtY!$2dk(3=L`rY(l$pU1V zWGqj$s&(;gtQlF8KCH}sNm_SDpbeyzV;+>!sB;21suRIo9)U(Nn0QEE2~KM`>7P@l zFW|$~4Ur5N62d*e>w16@IZlm?eybKYuS>SLf5-__QppzX{F3NI(Yb^*zZ?jY>W2h% zK4YhJC>?Fikry<JpyzIthUAmjDgmMpfF8H0R>a`G`K-{@DqG0Mk=`G3SZwc5TjT6||D9Sy&uA5Is$ zv$jCB+SM$|52wwryneXy!}?B>|Hte*sl7K|yf>DPhwtf!dvDCGacK|QYwPSaKMJH7 zG(lT{2K{iavEBj{X=zM4I-8Enro*%8*lcRY-VcEDNh~e0b~P$ml{z|lU??8TdFV(x zVi>_surENAYOeY^TX4Xr3m#1jI9n~J8QML-h83*msl9x>9@UbVudP$L{Vm7IaN%Q)|@Ks|&0$k7@p<%;9 z?5M+qAr|VHofwm4)D%L;4WR>#T4J`W@bfAjHiu=|7Qco@p)63$!U~}n>xr8`C@OA( zWM8MyJe;Gs&LKb)1Z5hEVbGj6r3pj(H%e4Db5xJN!s@X1hJ~tOjaSefvP;JuoFN!> zLol4ZCa9kED|shv7_7=*7>0{spr_OzA{-U2#vQK4y6A6A=xRFpi)&iI(o_?gYTEc! zMs}k#A%ERb0WaC-o3G&2;`23L&8eU%sRlYAN*VxiMUkTg{f>G19TQ@`Ab7!8td~ZG zSP|c7LBC^ey?Q!UB6TcBsx`srH})+T{aJu}o2fKtW=IA(UPU`jp%0m{teG(*QugH< zevM4ALdEPv9241|O)i|?h>A+t=!5hm69rtb-q)#_<*Q4b@ZD<@%Yh5mS_TVwLW2AlqG*4F$XIUFAWXvU?^S&HN15V@1PSe zC>ewo*y7tq(fF zQWcJ{Xs!{Ky;cxbC|=+ZFEbwQFJ4SitdW#)k|-$Zgk>pShMiz;2(2T9jL}{lBf>7! z!fqfS0^#kMCpDHiS_w1aB#f$cSZ+Yh4$H;_UaP%e%%sbRlP)Ulu&mM!%e|NYF`$*7 zCRt2Z4^T0O+AGSGDAWJ zsf(xTeAy^PUrERyc_d`uTL~FlQwbSl&Ei64K*D6WTbP)T8SI7!Lgt_1yMl;cGj|s0D68#yPSo+?G?%=}m zOg4MH|JHZda?&Es?joR;*;#V(opibmqSa~Fw>rWH+yY$qP6l@5;Ju`q6xw{EDaEX` zo~ed#%<4c$#DG@wwbt7Rq(v?Om?j&d)#Eh=ygsUcAT);;pp%QRtU~9XUy;Je656z@E@XpS7_Cs6QbnNCFHi5g6JrD`n zATSzdd#uD@cEf8d2W`zxtN_}QC3z*U#Oc_2&fu-><)%~1 z@ybDno}+i&yBxnuWY?+^oJjhL3IMNQJO`vif%l?yUhLj=RkaS><#BRnOyj`Ed~7}c zq2l{n&8~MripgXzK^ioCXPZXTG5I>#jWH30)?e-OuWqy3ED%xgb;!ykX} z#~<4Nd62zNfJe69@$dU@dfT`EpXq2`zu$ZBw;sCft8d+L?Q{e_H4DNYjYZm8*kvu1 zK7JKQM`yi^%b+1hh`5-Q`dlX0P9=M+DSL&JwvEXiyKM>;x2l0{P&ZSXX1hMBCxmiP z*9ULn$yD-y?$4V_7IgixD1IurpZheKPSlBv-}mS@@89iz&vTu*9_%lyoCfa{V)EpG z2x99kcg<-Kl4nhfuT?N{j5m!crjiHc5Z>wvtOZCv)3KGWw?R}_p3xpf@MLkevc)LP z$zzk#sW?J*T{^Z_PCeU44GDrC7=?lK+7=Bv*JpN(ynFt9|NNRB&joTrShLMUPrwjr zeMrX;N*Fu?xiDRO4n5K@xIsT@zgoV|4Q0wuzE~|UB@UUBQB&s>s+h;M85GwY=2kMz%NXFDFr{uyWt4h@ftHeFzntq4F2 z=7t7zb$0803`xdN6EQVj*?KuQ6R@1v4!<%b(lyR_lEfj@k^@hN#(& z91%woF;vdtlKACW^lWUSvlOC5TMNSR8rV~u)dJ4Z94qzam>yikJ+q@1Wc8Pit#swp zxQ~8(p2o$pYJ$d5xVg&Q$<^5&Yd!(nN(nx@(ifPw0_Lj+RZxJ{iojqg)taKF_ z#KWzIN2~zzrWFKGL(?@}7;`i6o_ucn%CV5oEqZHdZFz^lbanV2l1R=!53&>?#v69q1<#wVX+4lEas>?3!G53=_ij*YTjSckG zZart`h-~Y(DbsqlG>^UO`~lP9-XNALPS{uqb1%WC$3&H(vn|dIV+UMA{2MUOy}j(f zI1z~d>~K^C<8cfEK2(DBkrz+b=J*Jop%qifE`3nDTUb@C_xuBGL@6S+oW;-0on`=6 zgZ+v%t7om;2hrS?0EJVM_dU%^@X7VH-Gsd6VtrtJZPx%MN%C9Ly!yGHN0V?U9-FIb zqkj|P(sR<06g!j2E?o_Ra-?`CM^pSBRy51@>PQTc<|{R|iKA<^CZ{of5Lij}FbIgV zO}Q7AWDgpE7T}l2?#Lc6z+?%y-vIQ^mk@3VvD};Y8|-VW0_=N)0SrgVHj1qbsnFOt z{C?y_WkSG*V;HP$Y|WJ??M>-<^9$hKFv5vu+5n#woxd&G?S=HdzWtqsxkxGj45OZr}yhpSdZ9~odcu(z05f&(--ycO*l zn2yflL3=hGkV{MHNFJEI7o|kmHriI1-Gi~uFdNc-ZycFh8KP2%>qh(0qVC=*>Ml7m zQMa)t9WNp|AiHk4(LsxP-JJ4(YCZZ)WibxpE^J!Hs3`;7KVD$}?W9OwU+(;)`nwOdqRs`R%Oec2= zvo0=k+$d(AWD(T9$owHLi>#k~RM%5g7=B zKwAEXqu5+pUU*trez2dk+#s_9U)!;05lhQWhdJ@%Er}GFXJ1oXw;IG_${@EH#8aw4 zZa0XRxPmw|B{!-{xY2#L^==slQYyO!6y8HwOR3y3;FO9N9*(UM!|21PqErc@$bMk&lhlK~q_pkE8b z%!V%W_iwA5nVwcOHF}6CGk>*E+v&d3gr*-=sfp9*PotO67fsq!dqd=`uj8@}7Ne#s zqyE(N?^SA2j?3wDruw3ZJ;aZbjFzPIzFegl&Y?ez$mpx|o^)!E@$)J&lv{cFD5Ebj z)(IKgNNq9SuFG)TrU=NbW*~%y<81~B4aeIJ5*m(s4AN~l-l8g<;mCJeU(eCxwD>s= zO=qCt_(WmK%oQvn&BHUE_=RX845R$F$722)r4-qg@W}E>Gh^v^mw98spDsg4CA&-} z0kNMKlU5boXZ{US#2q1^@8?K&rh; z1v__YLNd97W93xIZOU#Z+*bsNooi>1kV9`ZNXW&v7$o3yXH}7QfjLDcr@{|Ltpw{_ zxPz#tOEhutBJx_sXmaXy<%{5oD{rwLb*BihIJkU7VuNAT8}mM;qRZgpbm z1V;9j7CfDE^jsp_sfZkT1~-Nhyce}#0UGB ziT9LdBHwM@llxiDOf-%^Bjbw~NPZaeX%Z1x1$#1&Xw!+LkSP(1WPtUxv^}EBr1bjw z+NL%sKkI8-l(lzhe2qfh>ub+Z_TZ)QZ}*9OJ1*xNkbNGA>o54xsGad|H{&ZQZ=wv2 zBj_rtR??YYHt&bt-yFS{GU@nqa;vVybl<7#*mSa8*XDGxP1n(BWH;9lKZ`u<<|46w zuLYW9@6{TggDQzjq5B8i{X2EP;O;rPizG;QzfJcC+&x{KviVcjI&aW2!^Cg!(E4F+ z&>pnd*Ra#|Kl5{%k_!kAvl4pf{GV6nG!NRGrmUz9(cxp7)a)CkUu$dxc02uud57_e zFCkcOk+;S58p+A%dk@P7?x;zkzgy2IXh4_euro*WoFRJf%rus@8C$lO%)S^L6}++A z0PtoW#@=Ost}ymar3D_&gp! zE;IEEbb!w@59B1r+A7{_hq3vA98-?=$R;}zz1B6Ny+bw!8PMKA0|d0UV1O>#L*8M| zTr343t0qsKIf({7Zk-eB)!AhiIdFoyV;pYmv_mCd=}GRbEjVG;lTf44ckG93_b1|C;_`fhJalnL%=>FV_wxG+}%f7+x-9(dQEaa7yvgO z?iIdM42bBJX3GpA*;ba;nKC_nMRmZ}M6<{1W@ zK0Y6n;SWr!Alr);ZYttG>ej~G!7d{vhMLJ7eoBHjG9xXL;HTrfrN^*3OD{WESaIKy zagku%Y>1p4XZd26M$V4I5>(lvHsJK$iOL>;N+ad7F>5$O2zbaZ%58GwaZfns9ruKD zDql}H%K&=9$^P#NC+WW@oDBM&a1!Tx!pWEK3Ab$Z9{sh{?;dc=qwWDG8@gxxBtiFt zll$BgPResnxb1DyM3rgYiOU;VU}t+69r_Ll8@)GyIoWs9t|pzyEX zSVC7D^xATvRiazBWUi)Lw`2~tSqrUR$lI)+dOnv&K4y8;tl`SenM$6?<&7UP2#8S` ztt$PfAZ`um!r<2Fyegz#nOFnC&ZtJcX z7)oNbOtD2?%`c#!;Qn9~-9vJ*YuSMherYbs&Q^Cj zO7J0P6i^RJ+vzp?zVu(M0x;!AIRe0D?^mA0ag9o^_(TX!IBVt*+e@;xadX=fEk<&DTu- zBs-CepI==C7AE0q<)X}I3%G2wMcc~VHVbGYkq30qBo}B#diyZi#4Ik%h}%uKVu zRu{}nkkan6cTvfF$SEX?oXAQ*EgWVHs9u`{+{O*Jlicpq4TJ1H+}fWKlhnnk|oKP@a#>b`;ibv8|PcEqiM0I`{;m7+*qIUPWI(8j2%UTibyVn7M%07h zNsUE#Zq%w5-CS%!QnC_}d9r1t1f-Xh5}O^e@{e=OnXL55v}Y1oTOzHfW}mr|`vcMz zbl#vmE67{WO)~m;Q~~0&na1+^NL0SjQMuD=IcZn)&T$bo1H1#4(U*=u(mNE9uhR5( zCvebGPGdpEK_CJs>cVI{2txq1C1kRdx_6Cx)>PH8t1s+WiYzX?sw z?lcG_P(bcBh*p*4W$rNu!RK5?mh#Sq>YC|96Oh>~k!9yCai{FO(FsM`BPIXyzsCZVZZ_HZM2);x z@@IzZR9bTey%Z$0(~%H^e0(y&sXa_sFAzLAg&{0`qX>5u1SBZoFPimWKvshC8|cGT z(sDw^=-`E(v{cr89%WpRm!R8>e0Wy0N>Drn>g8Dhbz}xShlq$@Wn|{fbh8^vy=qj3 z-d2JeiYo83YVS0_1zU>VUQE1oQ{8qcza%qBSEax^DrROopg;xb5lhzIlV@KZNqf7D z@r!NBK)CVN&!%GJOqHm8*V10L)&a$-q1a>+(gA>TdJKSY0Dz3lB@zTvjEYJqAq+3d z>5b&2R0^ZYiEt8RG8e#w?cm^iGoL6>dD8@LEGux+8-nLj+SgCF*b%2v6qV_!F5{fi z27woLd&LgBB{z~ymOLRC$zzZudgUlRE)`n>jMJ}%PZv(Xg=8n*y7IW zo}Bp20DGK6*_mX3k>PFQrcsXrw&OdQ%6>w7;n$j@Ev2Kj+O2;1dlRQpS& z<8P@-DZy@wM^GbTr+`JaRq*2{bod;1OIWWE9R8NkVW)8{6u zYnFt(BTw54=u)swSt?kkEETL%mO4t@AreB=@|QxbujZt7*peVuI8?qd=}@d*va5=U zTll7=qFfJiZi&~f+Y-}+C(57DT81!cXq_WAS@Ek43!R}!L)UyqNw1~KScHTIaRc$G zixUJ$M~b=tXQ03Yqf)e$^D}KU1$0rok@G>uoG8l*ST;TEB2+r}r70Cg%%9WJW5T59aP|1Q6n|$$>D5OD9dXbpI<-JR2^>vrOki0onv5OzUYE zmO^sl_2ubbE;J>ealicBJo+!7vA_J>5NMKhz5{3i058`UG?znXffRY8`@4g#nP8m~ zMzBuVEm&^}qudM04@LAJarY88n#Od_Ew8pdTXAj&!MHLPr;}87J|n_1IrR=7lI$XK z9%Z(BZ;|jwVbUC#bL0tW^LcV;Q=5`s8eeD@-VTdehZ=6XK|+gTn?VALL*3ih)8e2X z`A7wcdOjldf6;X&XI{pISjda%u`246;({GNj)h_WfiR|6+Z^BHu#ToDrr_?st^2!+ zA>h^4pLv63$Oh8z9GEjeO{RkV!m98INj8pjsvs=vm(!KX>wd)+KbR6n`j>99u-q zJfssTbXdI85fD>^!X=~>5-d+yfz|Sa6t`QE3nkj@pxe+0`tT(*6DF~3gqXaVJ8>)X zrQ&B0?8vWmAn)FO3+IwBFQK|WE~M%=Y##wHR^7l<+U>dsn5-5ebS+!>Z-4W^3l$E_o}a* zgIe`v=chd%c5%n29qr;T1eaEQ874B07VKKn#Y0woCC9w#E75Es;=nBfGkwr!)t4;u zld|gTtBX+czux;7+YWqo@79)E)c7~MZhhT%Z~Ec)&VP(9YFyEaBPa^l@u}Yt6jL+*Z9F?!{6=9%spDvK51cF1BGZDJhe+P#(zN5+ zN&Rv23mZWau36o{eo!h!2#rAvqMNdoIq>I{MPR7bb_S8Fdfn1w!@MfP5TPBLpn7zi`!#5WtB5wY1)u| zF!&OHjxUYzrI;d}c-%-wW+wpX49uonMt_G9I4;;o*5ugZ zbXb>RPIbL*c4Aa#xI*V_Xtcr8`tl?_bd1Of78(c{eJX;pS=E;ANkS8ce*2flbL^d)4LDO-Tv+Ge1=?l?{Vx? z%*dVJn=t!W|`9g<1nJv@rs4hvJs7LHe^$YC6G z&i5+Uuh>x-Np^n#(ODR5epo`}(%eJvVF5uh$=SQ)Epxq~J)*4@l9?ZT>fpD3_{qb2 zI33G6y6uji|LJGm|Bkz!veb@dxFCGdb@tH@&;x#1|8^!5L*Q4|@T+uq>{Rk19>w}R znF~W}C)l;&g$yefsR0OGkH{n*TAK~L5-I+>6eqmLUy1QI{gu_N8DF}f54y*#pX?3L z#<|+=gN9n(b0?~*d3ZASmdQGq!_@W?Qy!Z;0*J%7*5c(Ju5T2P3Cv*n`s*~0A55^sNc1{N3mjuq>nlEtD@HPELLiEOUymkHG((bPWWyU3!g;ydU+?59#@wsl4v|#Rdi1ZY)=beOCa&x}6vez? zTT-eDAUu=<6>xPW;UW*@o8X1qb>XIHa`tbZee1^*34jyZT=vrBM{dwLrH3_qLfQ5h zHnzcgHYatvBK27YyF?pMjbzg!9Q5(tK0EN6n|tC;q$3www`*wZY{`Yj23b=|3QfwQNDpY1CZtuTvT0!9a5qjNI(-L{J8Q}tIk8iATd($@PB z%3Z{9Yd3Ms)k@+pis(9Q9dwB}wrS`X^f_HUaS;3yZOEqcr145uh$)9I!gw(-=;HUd zbdrT6B#)4*1yNkXkh}1~m}p|mXo9X%a;^qVY%Nb;9}`W0fpnw?O@NIdafa<46AChs z3i_oKdE!4CfNuV4%DB>)C=)^!-3pz3PNmv6Cz1%-l156*Z2A$kT#2#b$K-4}TKqui zj~73TfJA)-0r_Rrf)&IQNh}WfmwGgtA?YPHkkvGdN2@0c2i&z-)5H14FK>^@yy7W8 zq`rr;*Ss9EYqk*(?UC9RJwg5ob3sq^PPJMhVwVrPcWE+7alrd@A)r=he@;E`E)sM*YO-{(cjqGGe3b zHM8UOIEv(QGVh96C;NmaxTmEJ2@}mF`tT#R)6Z*>>=BvAGzp7!Kt?c#V6vn&G3a2J zuvz_;?P0)!*`tp>`s=?*(WpJ7qlYQiY{O=SDQsj}skw30Si{vItCq^z&Ds`{xQAo` zkI0=JOGhq^%;4n{K$;W7W(covhHwig)na)s`kfVK2)EMVHrtxD(iMdvyaH2r*c-wv z3}FP-SUSErj?ytSmS|pg5M;~UVG(;9lSAY(y^ zD<#hN&_cil%zx$rD0GfQ!&?o zPK`~B0LHqifElMDz`HxZ4AdB4^j7Z6XoPlPXtLv%&J}L25t31K9Bwa4s%3Yeyo9b{mXUeAU(@}w+^YKtBN1U(v|rS$!Aud%bbGQCt z2XJvjAL^4>HS*t)=EAQ+5%~08h>up}1C{{AUws7e(31OPH8f0!j~Y&qrNU__#6ckq z=oaFNW-M8Vk2}u4~bX zr+JIx*0UV}0ERW5DN4Z3b+L_S45B0MuoAdU%aYF)wzn!^hrP!_C+k)=)md^l>^;G`}DeNUW1f&|n#AH!q9Lf=%v~;|jHHdxAwp zQ`yrV$+Mp0n%n0&lDZ|C7=ga1bn>NUR>4O6_}I7ZIq!LZF|?{G+FY}WDWF)D#i_>d z|8{%o4&zh`AS{57bwc7g3jo0=4#sYZb*9nQ6BH_7s|8zKg&}DrZdK0Q6xBD6FAZS2RuOyh}ytFVNMU2g!Z{YMIp)Q1XWT{-5AP%(4DA@ z2UXR<_YBL2yfMKZK1A|vA*wISp9b4+UPr_c+}9Odv(^8e(-qxw)FjTudJ{yY;~e*_$iO-ej*$>2CJglLu5O$$p z7gk{tf=yIm=L>dz6}C#SRaMxCU?T;LiLp4Dj(;1VTEM&)cV*gRtckN{PRk;T8I)V& z?BWzOGCbNRc9uI0njURqU1JK!^DdIY>^Hb)b9{}jol07-zYVl#UQrwL+W6iQcaKbg zz6`cpD;zf5HnZ4q>lCy@e5TPWMt|C@HSi-F`2cNiykw&03TRmPN}N3!zdVa2%9*OA zdr9jENhI zSANprM&&n}xjx_@Ai|xcX%FzL8vX&oJbZ%9KIorFln3u%w#%AVs~9pb8f&uH6(eSj zg4_82n2tZeji4CY`|U=%htOx#G)T4X%^^lzP25S?M|lT-2BzE-?kZ0nDxPpxdGej& z33rtz-zc7NS9x+@@r1j|6DbJS0`82^XdC^B-p}@}*E2xs+d+Cf&pk0jMFy+8n zDB4BGF%w)lIycDELiswVIfb?uIj1e1gbMOnlr5&WSk6R@m@jHyn0>m|H^+N)1?SiS z3%X@lDptuhZjGv>we!%KgUG|m!)y)${);G_gD_U&e;tmt z;;j#hiRr7jJ5gv1S#l-h%OxB7{moHqylm|mnw_~$MpI1}!`@2HUs7w||6R+nQYU7} z1Q44jn@##6%{>*F?WK_}MNUSz>dMtNrECU;Ad9Pt)o?9CDpbYWvf z4684f<`RVpC!_1*sc1bi{Nnua#j}%9G$m{*L4FccCR;M(zRQG5*l%6G_WqCwm9|N5 z7mZE?byF2E1eiz(;1-0%Lik9_xmKe_MUZg|{ubTN63U%PSZdmh~X z-Y+(%qjmiJ{4f6SPY>MlkuUttbVSbD%(iXc-ud>AfBoxcPek%KNUoi<%)l+ zb$KURue*~EI5kW+U{YVNEHiaQ?zeg-y6H6TsD~}CGTo6OFA<#V9pii0?SIu#<#_}lgNlpYT(%MQNO|Ic$gNLMy z{bUKIT{4RK-=kFF6J!Hs0A_PwvAeE(^UrM1nK*cf5ftEiDrwFyKuw!l66O?WK}t(B zlSiA$<$RU5!`3JDX$_H2ad)Y zNIP(nRkjf$biYk{a%b!2qs;Mj zZ{E6B>rU=PitusBKxao3-Pg$u>baMP3a^FHI)0Qy69L+6^>p$acgGsE-=#QK!Yg%|N?s;0F_pa3{dzGMnQ@IdTbXknHNx0>3#Qa~-XR)JD^{uxTsJa0y?@{&V-}&YT|MaGJ-p`g=U~1;( zZ8yI8jlcNxgMSL<vB5i2K@XUxvL)scnDTp_R5mAQB}`@FwhH=BLY-?BvD3;q@} z%HK6-XWp6DLHNT2hP0@}Fu$Z>(6Qcdf&BmT?@XKJT$gOg*7TD{fA%Bm5=n&FzK4A8 z5_LmT>Mag}wIrMFBDLExuD+sn1uTjX>yUP^XhU|^l}E**86h{3+4i>;WcJQC6pZ<^ zJ9gdpwZGc?$=5p>HuH^tz45^AfB61i{c(je1ETd52ck-WX1a6Zbn<&8k3xe>4Ug=hur%N696_(IcK%TVPpT~2L$f)%GJBe1h|f8K z3Sa529P%LS4pxp-x6ObLxVi_jhrenR8rI#dP)KcHLUjgrB`mkGtAm4M4Z6KCz-AF6 zrjv&X3n3$EI7f43T>6X`X%!#)iM4Z*+iyK=w<))`y4y9}?*FktTj}5oaaQSlrh>EA zI;f0-c~`^EnEUsC%?cBSRE8AHE`r<0udViK4MR)XdL2d4Iw_Yg@&FcHLzyps<{#gD z*XQ5Ib=&^=Z+`gBv!u+-E=40`-|~2+4M-(sDU?->Q2Lz7pFypY`mDc2 z4&38!NxihYIJ=wR2Vrn)IDsRSo^Hu|nrVn32+mS~sczlw11deaU^79nCakj?oc7gY zVl6X)1{R2bOhpR|b{lUog|1r`n+h+wRX`Bl)9vACHph>CY6EnTquWEsW`D~ZQI0D; zS>T-jUjkv{gg6t3vnCyiESqO21t!XOxjm!%25JMA9^_;071tUkF8hQ=6FNGiL(j6+ z;=I=VH!xm|4$hAT315Q2F^f>9W>j*Ypq~8D_XbS9F)AtfU8=cd%FQ$ z$=eLLwsqG{LCL={;Q6ipe48tYlNx9D8Ssg%&%VQ#oJ`g^Ka@^Rx}@NkxfFg~oUK!+ z07|W>1f)o;z|`lTA!?I5B4B!vKtwGk@mbN?Xo-I z93s#ADk5jCL>HG1OYM0XG0ekJQ-)j^o?=CT9p%C!x3%tqfvJ*0ya<=(5rIRN&AW zX+G5z>4^AY0zq?Sl+rfesDE)v%S)i5QGL23hg}0SVkW$6uI;IDq~_LLa}QRU+j7k< zUBI%r$^doEOS{eS&N5dycZX$B5lQ*WA57b^LS`v^!8ChQqxX>O^CgS$eVB!Af&m z6BZ%wO}h!SJ3-D`k~Lg|S3CUv@xoD&gHnQ}pI~V;7?MJ|$ut!SaoBn;G7e1MiYaI0 zlGAUET)z$T7Wz#uV?gO;F4BplIXeBe8UbJ_oM%^p(NU;(j?-be%HAXihAJ)L=+8t5nI?O{`8~>Any6XA zAuDi|kROOsqLm$fI=&mRf9YvWEz9y(s)yA(F9y!ASXzG_R;sqw6kWIQ_}njRFXtO- z3lv7@mefP_+WM6D^%v@^a-41HUdzvhq&4%FSLZg%P3voeSR}=?m5ymn+yqItF;PN9 z^YsaODjicJgU1;W=*I@*d$;`S^6z)tA-n z;AU!kby#DKEJtZyCMIP)Gg_@bG&2zdMH7Xs7ztsd_3JX!W`bL7WD&#*#uC1uB!8@E zR#0F>*lYwpG)+9H6%>PML-UsHT1`Ztepui7ub_yTeJM)ySwW$>^fsnD{b2=#vPwv* zw*?)V&(#Ww;zKl5gjAhIQI;zyVx4d`6Vk+15$4FWYfV^dxzk#CnE&OLe9VpOpS6Nj z6E7!irs!h!(z5+8({0yxga`&A?`5wd6iC%Y#wO^ZwOhTeztXy>F{Y$eqjdMub-}Qr z4)kgTa25a5WjpkD#M9b+o2OZY)n|M}>ICGIC?-JBshQzfHa>Ac%@RQf8Z4$Q4Z66@b_ed zl~Qkx6ipdMy%%n1k5v-L-MUk@m&qF4fkH%OLHpayj3z;Au(v4>iab zA6fqmEi=zb#SkU$PL-j$%sgU=lf*nQNMGiW`?VC~(arQ6nRy07=9$BB>hOW3dCX6H zx3o^O1z8}c3@=wCM_fPBQlNVlTijCs%!WoSXm@uDfrXv8iC=MsMFrn6Z} zfI4JN_7NkRWD^l#`ZM{Jwq~I#LY4Qq{E%t?#N5bJqQm80{R->wxssh;UFbKu{8-X$ zXKV90!AtX%N6f4a%)F$I+sg zLvWRibR&#n@r*X=onAUFf z`Y5BA1B_ZXopq6(W_gc`(AkNYG^wK{biR7V6Z-Hnp`S|aak2?r^SaJSVMaC#9i~h2 zSe827OQinjD_`n#m<2t9XlBuJ<`IH927(~RFvq}V5|vQtk}6+f;8uC5W#IM3$$02G zCw3yOM37c;G1aC0bsK?k9ME9o(mt75W@eB?QDr9L=qdin!t!iBLJ{(FfNdQkZN!yi zwOI}&IeXMVk3L#^-q=|H2LxQLMkd_Jr&`@S>nQ6aETzv_o!Yh5>clfH>ufb~k7Ij8 zhvh2!HorP=GagU>Mq@}99~j9$Ad8`B^r+?R995-EVilF@)BMhKSt%%V7LNLXvjm{EvzqULDDHg?tIaSY*PjZ7gh%_P^aUaP}r>TJQJEzHse z`z+ZfOlm2I9`)QFs%@dp0sa>a5_fM-3>Nijm1t0}Gq+SP=prkaHIB1pX|T_PQejDN zHtMBC7=GcK`r%r{YzVcoZc;>>kRi)r1g%6cpBsa1j>sGtx8I~K_f9UsUMxLx{rv=TIPDB|gs!X>3-&jtX zXmT6S@RXtDKpx+zgvob=jYBi3XZFK&3gY9yAfb6kSQ*qOKtNL_?Lf*GBd{EU$82htd70>tZOcS=#uMFeAy>4Z zDUe9+K%uIn8-7elx*ALWS+LZ4?`?9s3H7$V`&r#N322V2WQP0KR}j`sdvwS_)*VSW zA_kQx8%V)=HoPnZk4FeD)8jHd7N*Y`pp<{r=n+?l^ng`%Zqsxjx6kSfW z7tyhIjGar&V-mtXcLEW{79%I6UiJbh>ix$P*j~2mSft+34-dqR>)2j7u2OEYMSf*Y zyMx-4fXxxE%dQi+u4&X3p+e$sSXJz6$|eIG%X#%$00hKkndxa^n`ECkWlSjAO+Om_eYY^hDuM zOicB$!P;kjs*i+YWnqb(PftnHo_+-MUh*VYB#i9sedeS{(^5W7Mx7j|tbE=gn(d>`7HQbl z0WhO`YwV8f#*zn$#UfOmkPDTxQ>choAx=WMX|z7F<2e)pp?Y=^&VRG{zYZfUesdgw zHaqvfC7%_NMl_YlcFC43?X`-Fb)x!E%Fd6_h*iXSC6y0tEPq==I1~iYAplN;kZ1J0}DcE29=8NjT{~dGnC!L|^%C4+ zQ&g9e-)fW>-WmH{011E5@!y!9oW{+9!yy)m|)G+ztAfw{)5T{M5u_ z`Eb@chO?&QC4%9sxlt&FlNI3WY(W=0;`LC!{?nSRuofU$l`2J7Nu`7V~k$+3D1^g;IzWc>M|N4zI4oo8?VC=ho_ z#)3}CU<*pks&C}7^IOHExjK&~-J^AU=Xwyzn7GZ*>|hMP>pe11G)u_^dC}K^Mt5*V zUE9JlT#4TnUT0XXa>o>~rK#b=jpF^mDB3H~F)HN12fs8IWoN7B9VPgXNL#gY6-U>E zX@TK@S_NR+RZ-4yzRGDYs|%)U*K)^}PTK5WFQ%?KL-g&|pw}5$%^-Vb=0Ezm&BRsW zQTOZ6PewJR#cY-~awTWVeZQO@|A+s5P)AD*v0qZ-x*Eq7drIHFc}aUFIZ{56e^ZWS zAfb8uf+$YTuGL!uje)0~KX}389{+@N=!s7o9(membL?qa-Yp?(#)DsQ)NF$#ncxRF zfg2gX9h`It#yItnV`8T?%Ap8uk_LXt8pCA2YYZE4_iPMF0H>@m)&^l_WuL~7rjTUY zE*Jf`W;x6$I6UywjNPgnT_j%gL>Gw{c?;R8v}_@}oEzJ&(e$_`wvij_6OOr`M?#(| z%Cklbzig4&v-M<=(3mD+QZD)KVC{PI(wqpImvFbf)?$S?mm!v>!(BT_8}Q_=JrY`9 z5VebiMe*}jW{)SiGMmHOaNOXE0`Q|JgK>AAq|3)Euwe|7YCmPUFjTPZG8Ujyg;HG( z4&!aYR2!nNZ?MN{a%uF{4V&YGWb$o@?%&X+g308-hIW(E^8=p$kbv2)dQL1!_Lufx zo+AUDjh1A)4RVKrASsh~UET_K3s(>?$`!Zv&A zNA{1G%_5zASJp>wyo^(t!KJ$OnaeiEkJQtlnRMIxG-bCT+IN`_3q>VdrUPT?=4Coz znlouGYa8e6zf9vWncQ<(du2NGzV;ydxYpaNnj37)G*~8`U>>%E-d-|~#&eYha#tf5 z$X&IQHImw=^|lLz0Sxr+vApfV9%Fga#;0fqujV8 z3&&RANgcwTWZ?h{jL`{mWZ@_aOy0!VfWx5{7-g*k*~9S`n8WYR1ssm}9>DZhUGFjG zd!JN}`5x|%a;ytgvo;)8$4U0A^}`!;1+*a>c-Gi?Gy^<|Fkxe}A)vYSwF4VCV2v^1 zguo53IM+iP+7#vh;0^8boqF3K-0`+!C&t1vW!)2UEMw=k3ymk)1saCH0;Kolkg;F- zfQF3Y-yHurz{c``I0u+44@P%@lw;F2oF@qFn3}LGpfMrebmSp?dZl|uf_7pZBW9fLBe?gDtUr;L5)1&s;2H7F^ zajtV+Cfnnjh@BYrq%#cZG$%WNrZ`undS;S&xcL-QSKFt^iEKj>{8p6CKnz~;^JR)%a9xsowB6tJ^Fs6nHFu}&X8QKFMI>XA-4$3E&V2by0QrcSCi@*krWK8f-s238oW|(y&db^(MphCUo^;B) z^My6}HMWU*U_;1+#rP2ZdA6fgv3=zw?R+{ zvfW_FFmiZ9Kw+0g_kr_$^2xyJAvD(RR3nV>XKn-dHY@0X4bCb;lbMzD;09Su91n4c z(`?%=ahh%WCDLqi+xWZV63$5qEJgVm)~V2xhbX4Zm~{@GNVA{Gi!LoY-DUFDVF6+& zt_UF}P0Ki|xum+>D{e7S$#jG%h_hG^$0f!YNnv-T>xL~v! zeU!52QmDcdxKYOL)Y&pZFO`;~y4K6+wUW{21jZ-@2|oL1T|=GAH$*Ts z12ajy#R*+HY(f`AAat{xE5yDIV-;b$Fs^Yi#~`%n1;(bAV-QMVf$;$37=)r&VEhF+ z2BAC_81F)kK`4<0#ut%e5Q=4i@m}N@1hP51A29xc&R_V~s*m^%MD_xsDIf7Ze8l^? z#|M|#=88|4`-n(G>$-_hM~DRtA_wy)wgjD(mgQe9Cqn=gq4;ZIlc${sIf3T+0KPXLkDZR-~V;?P8bq7#JRfhrp;H<(O z@ESKiNt_U}bIUI%TZ;M~Fa3l2$4$Ic1PB_jFg`$XXngF$m^XCZv$j*7NSer0aVAYs z2TV`)8b@>6Bt=WFujut^@gWVCJ_9%7_ji3J5N}1jYf|c6(_L>9bIYPW76WzKT>4tF z%lnT^@!@lH%O*6Sh!s)Oi&M8<-iuQmhnjh$xI_^vh0y|1aIzatg~%)3w?sOFS>;m! z;ZsSBkWU4MPdlRk0>h_b_K;5nhEK)pA)g8ipNiQ-K4lQqbuoJnKDEfP=TicGJ^1ti zAG=xbu^VDLo^NsWzUPc21+;Rj_*r8Tjov6&;R#i;Al`Pl3xlnfB~)6PAhv=}5k0JR zb`km#0M|R`6K9CRS~;IM0IZesi37k|`RVNrV51={6^E%iIN~Qi)jr8N?3}XU7{&-9 zAM}dn*HnUD3SwpWIigL^Wt?DT`-R~Xuj%0`mIYV21C3rdc5b?A=F#|dGxgu*cKCgr z{M0@TT96@Do=Rnb(DtkZXKo6BIa1WI&a1WI&a1WI&a1WI&a1WI&a1WJz z58(bPdp~j}SK0S)|Cm$Rcfy*4+4GPd;}po1GfHLe=a5MRN~}QSJs289(JLyulo1%2 z$EdQ4I*wUoV+i(C*@z=A>I#*8j#TzJJyiBN%c3ivTsnGBTRiCeY^l`UPcrW9Bf555 zQ2q#_Yg@aI=-OwFYL~Yma1YTXa1YTXa1YTXa1YTXa1YTXa1YUSH{kxFYaj8ITy)*d z{bNpa?Ix}th%UzIOch=G@TPLnb$8k=x=P`2?4qlva1RM0B zYCmUuTmdviN#-qps$c@#aw;RYM-@Q(W;I&i1H8t+-*7X^@UI1Vx#D#w?&_xkvDYuJ z1eOjHYG69>d>=4l&>!|w&xicf^Ml@fIq2ON+?kc>`S}FL`OQ_ucyh=4WnkgiV{A#_ z$66arRG*Ou;GdBU)A5W9NKa*90G|ye3TWwB+n!X4OcPke5Nogdi+P@E$0n z*e{r?__jP^E87*!9dN;1xh%e%ral*o==O+exjcp==$VobJACDBMxkLq%grBzu`IcJ z_-<7Xd8fS?2C>}yLFgAdDhyp>7sd^};UbLN!x#20p2e)nyarOj^Km1gaD+V%IwP;P z+Y&=qom+!=lJ#9s?foI>=^bt-f%3c+B0$*z7tOOQj*iTg0~Wr+>oYpX>r>{+?vdP* zz~hN4!sZa-3=OWRMVP=MF#29mi*OhP#yU{cB8-R#j4h$4MMxV0V|ge<84{7e*eME8 zz9Wd@3rzDAqI^pLeh@IW1T&?*G93;P?2#>@?3M?)Kgvu8F{(l?LuELfQ0Dxa#X^~R zLag5Pfs;lVf4DS0KvYkB_q1fkl#3p3pR(w&<1@yhG5}&A0w`x4F@TbXB3&4S07{;j z-~cdT9?o?`a9-7*FDA~G#jG-R`&jKwEuyi61C6XUpy?nJ z73d*pQNlf-n#}By%6uRly)s(Ir8$+PTp-&uTvkojwC@+Gv@D-U&$=>-xwsWv3TPf2 z-W)xN#yv%{(2b@ie$tLDTYT_CTP+J25hr4XF-x;7N=L4Y_N(HtE2HfLTs8MQFdcmX zSau(?t&Zzl@JE0{gkm2~=Bb!FCYhpsE9l3R2=pKzqE=aEgS zE3=Dxb)~}x303am-X}OZLr-lY$1%$G+gA_fbAAk7wte&LI;EmSqc2SJ{^1wd`Um(?NQpR9yob#J(F^P*Bgzq-VK>O6zkqrwBS}mL)QH46`hmVPzVN zcq~1N%6UiYC^|l)z0BN1jN8@BYNkxr+L+PNpZqU_brRcaB)E@|++G|Ay!&(|w}YW- zdON2GH>S=Xvh?=hCr*uwPBq8Irxs0bKcrc^GQEB4CH#aZ=X8bC9$}79*TcFd*&(I3 zZ{u0E+tS+)hw1Hyn2N%lnM`(*h-Nd-d%Dxx!7}qqee$(WaAT|uYK%>X_h`(b>Fp=D zG1dk(#`08pG{(}~cO6Z7`w4ELrMIhvn3pWN=^i`hm0JsOf&(`yTfm-Cz8G9q%#)Db zeqgcm_7mKCYqVOA72LD+N^e(w8|m#EA{~&NWRNe-CaZ8EF7w0ZHc311C_50B9nzfn zrPH;;(=Z+NAKs9CG?!^sxb*=|pG$~(!;zV{14XS3bE4T5?tSfH%l;dg(d#s(xzQM+ ziPK{9uf*7mJuKJW-MI|z7Cu7RexG$OF6_>_U#Mo?tCz;GU0!REb#I6$v+j3YHqlh# zo3bcecZ81JxvBu_yuXDYiN|?}_XWOy^CG_xK+v4L8+ws0p)K?@(ZG}m-594lLl5Sc zrggtp4R*ZWWwV)s@f{cJ81-n!{2@j`u!A%Bd<^5Tk6{qgFwP{VVaYSZG*+gg#V|FM z`|GI2q@Q8CGkty}NS}8j(v?1c!iGfd*^VdY6dDf60bf=hkr>slv7)Tzl5}EGV9?YA)Ztz8Migk1#z3#*LGae zW*~T5FI5xb#V_PQJ~`xq*r z=Y4NS&ihwnF@n=xIqwqq=l942AgN|4X2uC=zNPFRd-MCG>=XY!jkW+*p|j&G`MrlN zK+3e_;zX#~l+j)R@}os&TA}qC%4@fZ^Nf~fkCC^`hh%u{r;Z$>t(GhK*;-C&0pV@=dW8oz>H-;kLY^Xf{uZDC$JW(leqzjL+TB6 zfK$$)vQROEQdO}yJ^zhB^E+GMI|0OHq#tsS2!EAEMRz$J9_a1)%ZQ0e9|sxf(4Hp? za?_pA@0XE&zzowK8R_%NNN4=r`>i4){qTk|BmLi8M*7cvM!Kd?4I|`SrXR zE?DxT6a?;gYKDf-NGIFY42!LoI70(^GQZ@;OI%j&POn;adDXJpREs<}+T zSQDz!Zl{)%6$N#K%w&KGLKBGeYJ`^Twrp{AAAc|ugol{E!IG8n9NN7CWB1B<4ke_( zSjjS;Loq2ZHnoiB&;l123tYx?C@lrXUYGG4icEpA@MSy)ax;4nFg7(-RQB_#OLPa~ z^bkWMoBC&(bK!nNv{xckqhGp2$~sloO}sg(DqML`wLp@lB0xdZr^psBbzVodcqjjq zJhPtQLK~r>en7!FRWR2jDZ)+*B!rhE;LO?}Yt;cTo=ZDdT4=J<62^G0+RE@y)tbh5 zuG-u5zqH8xq|14s@q8#q2!GHegjX28Nam(*;4w@HU&s@}ALz=|mKKAV$PzOx z;HaF#N}}oFEE8XrIbPu`z>G`>Ujc-#AmA!r0fw(SJzJ5L_iQVC1sJ{(b5{5YFnlHE z4EYKPCB71K_Tnqk_>Ql3UEYhYwqEWu{@mqWY`W}j!(y4;jltp9e_D3;dP1%;CcQ#M zCj_kECM{rvRh{#XIbFLFutHAP4gf3UbnO7JLYbE>?lFW5ZQTjnD{>u}>(R43N0=f! z6eMu(A`6|_{oH($*+v3)xXvm_;6AU1+g9q!kvxHWO*)b%aIe9W=u(~7*|~b`OyDlm zV^;#V)T4J2^7RdiYDHE@ z*sQgFT) z1nDAH=uUjw*Dpc(97RG&kd|pAa})pm!r3rE8e`ohNcW5j%4t8N<2i2r?{$|~whG82 zIbyf#ogoUlxv0*D2qT>NzjC%`XEoV*$K@8zIX9m$WD}dq71SUx`Ennx^Va+}Z_Q)f zuT0O)Crr)_lASe8UX2A8`FKrD@>ib~DX=|92BIkml@jnZo*1)A(D9BZyV zujo<~lZO^U2OK?|nJB?M1S45G=$j4r44OQFX*v z+!Sx<1QtF?7+i6)#bI1!r-dEEkcx{mhhCqH5QYw)ix7sso};K9Zr&WI$OU-m+Ef#l zM>&nEGot5m&-YAKCrDi4awpWKPoD0flSw8O?WX<}6x?fx$WqE>GzPjL#TPwD3@r=i z{{=>CDjpUNhrsCA&Ul!>UL%JCEHL_8E_X-_0;BCa^P2_64e88pei*RV$UWwm4@0vW zP|Yzv%>7ZO1{hzsI2pXhO&BLTKq_+oI9ZU2{Iq26l;e!uQx<)6oB_fss1_68?Xz#I zr6fAnoxoSsxyReDy8l7otMK;oNn!`U+s}h%4nW|m%vkOSe1R@vIzhJa!!Fy{yZL2$ zFcf6j#$DVXkt9h~WE*Q{3*57BPuI*=(@wk9CRnOW2fcN&R?bAHQ_?MN&AQR-Va-0) zm^_$QjbqwHn4a!Ei-*xLNH25@gitA%8o4?7=`4cY*D(@RN!-cD)2cz6?pVGQh|3D zslb2t$#`Udd{>wAs{GeF|Ht_z=KKFCI!${!yNKP<{mm0*H?kjeyH=khV|Hl$g%@4C z;gU-?4v(-I^!SR_%2j7wvHI+%oilar^qTX|U#o1|ncrA6iFV;?bc&K_H)#vVN1n_t za%d0h${gIo{(4APl;&r&UHIHnxZVBPNYr}h$+N8={}D+piK*a)s}<>&Dfry0#$KSC zJkFGcSj;1&J7VphIdXwh8Y4_<3T0Y8<_=r-=?{PcN3*D?7X+D>y zGc0HrqR@~pUXImE0HRJ{3J3mM1xa(_M%)wDF9I7@|P`MFt zD^$Y1{8g#e*R)-x25RR;Zr^GxvMaef+ZLqI<|CA3*I$(H<8=|3!vp&>b%{c^TS0#RW*7#r}9^km5 zh=opKPBd@(Yz<$leU2QpE*OiN;!C439<0#EveqkKp{($yM!WzcN5k!Nb^1lGGF1Q6 zsH{FOjaftKCsE^5iW<=eJwDRWK7DnPxo|qTPV3rrXvg_^tw>MT8cEUU3m38FD@faa zk#<@mkMp87$$3o9U({v{SnYFB8_~eJz>C^QhV0n@hR(p3}Jzd-XOi|7x#5I-d zbN5izRP>J?zU%6#WZuI+c=c5DcXm(Td3QVa*~4!0wpHcKB->D5jfYoH&;8KM&8c;#MUvHHr1&t-8n?vx^_kq(6$q%$G?gl%!&^FMlhu3YDnq(8KSQz zG{7?Do~WB1rW|`SN7;E5Mb+FQ*!cyFxPsgu$u#E)amPZxq2{j#{a&kn|Cc3=^l{s% z9h9u@#eKThO_!V1Iit&8dknPp%A&Q;(A^XKpdhf_vR27#x3ZN%={HasJQPH+rqwG7 zjhJC0^|d}tr-Eo*tRG%aaceO0ij;9BtMAxF`CL5e*lDt9_w&--6^|eh{ zL|itaVz^AAak!)?ATDdrN9eJZ)KhLMcV}K)ZDLTlP+A0&lc`lt2U`CuZ%MLr=S5nlBz^Y=)4Xk{kU5Q~D7|b$wDl?IRG4n= zDcb3lAl8#H45T8TtOUhNqt`!0nK{{ki@g_yBVW;#^A}6~xh)X_Ye`^lqV1|0OYgwc znZMX{S@aiJM0@Q%+v6>wPx(i8@aX?%@BO3Xx~ee%VYje6 z7BfVx*vv#%gN>aqiODbtdBa=Ff8@RAr^#CjcwWS74G%Z?2O!)54W<=pFniY(8qA(`g$DDnb%h4A8+fL{{5kMUgPGykZO?7}f~G=YX!K1R zGc+=bfjr4t$r9PrsW*z-wl}g52Eis zt7hE9CVoqs7aa9&J}Ird;6m;>Gop_6m7b>Rvms}5Z|N-Xp}8o!P(!1&IX(TgT_$>A z3|E|fb->W`G$67gPwJ?0O2 zW1%9Y0-_EoYi7Fx*U(Kq?)=*cV?=oovuY|ovv@?nChq(J7?W4uY;nK zE~U{o^J#o_QXd~F`|7@fukL0ZovMAyyQ*+anX3xdl)0*KO{p@N)RboXEzVa;ErkoU zFjHHpj+iTsSC|TK8VVW<8j5KwX!)kG;N{9xK?bTcKKs0L>+DQDOATVE(lGUUuX0ENhM1nHc)~A|4QGmu&1`XGgw(AfBX9qNWF+TtB^lA&VzUaO zF(w0SPT&L>Bm<1^Ap^w9@3rKo3K^i1fQH>r1_Nrd-sdk#2JCc~G8ynrJ9RQZr5Xpy0AJ-%zJdxF zpvsQ3kpZst19-zxdjb|x{%sQP8++}Zuha_(djf?=$b5ILU?B!nB;vLG-F zJ5-l1499h_o6MF>LhM>vNQn0>EhNNF;F*MYC-6){r~qUrAxgmyRfI%BYG#&AZ^xtNL+AF}=G}g;_ijJjfadl?hcLGvGvC%FqxIoVy0rHD&i&`b z#CE(Np|0np!R|nJ+b70s6!D%wY#6^ie~V}?xYx7m&>?3x8oTae;`Y*j7r_54Zkh=m zNf$48GU<{Do=+5l=blW@GnT%#b|1>zsgB{a9p*bv71as$L1mn5v(xrdVsX4rHoMKv(cngtFp& z-er1p&ZAn3drTQg3xaY; zd}E)C5k~~vUoy08Vj^7A{}njnPheIm|96kA#}{o-Un!iI+AhqC+Hh_PY$F#=P3^Dd zZa}iFirZUj|C6|V3|H8lbs!A+BJ=8W)s&u??OSoRTC|- z2zjr9bm;Y7C%dF}=)&$QRl=eIE2NNl<&6|&4U2(0CcaNu;BL6fzMmQ5xY9odY?;JqlC_Ib*SLrw(i%gelswP+p|ui;?GvA`j3~s~RgmVDbpay+QBUs$ zBN|-@R#h91skA0BrHnAkFYk>u>|9=`4BM#=n;Dh2FE3PvZNM{?;Z49Zl|lR25pA%D zvjt$y+2@%A1W?TTj70z>qec!EF^IjatEID%E7=;BddwKa8UkRNzFt>1#?u$gunaWE zLU>~)Mq&#pXmnguPapKwA7gb~Q9Wr8ZuPPlNKzhMZC+#}_KtvB-fnB1D@?y_s0y0K z3g>OL;t6Qf70NjQt!JU6 zd%(U@Vfba6QvC?SPn%LPx4qv6KaFCz!X2;6IgAED2G>z^^UOnFwLp~DBF#)$4=Oq0 zIFy?c(maZ7QFGpvC%R>GK;Kksv66=g$A>Ny|B90F!WN(cjgND|gpB#Xl+23+lQQN6 z(=uj-Mrh0njSyz$nbWRH=2Qxcf|h>lJ0?{gCSWFL!tq?Mu|)FZa%7_bA?x}j0eV=M zqOiugkOKkh(!%giI%cek04GER{6xD*< ztE|7e;IiV4Zy3*mk?t(fNVZg~QzKie z*8aW~D6Cn5LRna3Yekl=g~j!Zq}6M26`vQIGTZAObGX5lc^6i%7CXpQ zQbP5%0xVvFJJs9GfPh;vT>>qgfh6mNP28>2pRizNwtiWAaUtSEzNUN+pxa;P_SKmk1}E!BOlI;GyMZ@IEGL zP%sW08}W!WvupbQ!s8`aI2=Rl>j4tWx&}RVq>TZmhoyvp#7K> zG*RKbR~HO5N?ICxmpHLDzW?elCt_flrzx>D5l6-VdXgDn@SXC^4jFX$3UfXwLzwJ6 zDHY6e(~$MeOkjA+>1n5TcEfq?(mPwZNy}tlTTqq^DXLVniFx>=!ecGn2mlL;dD*mi zdA5@AM*8Mut`;R{Wz}c89Qy4;yUCgT9#9MKY(H0W(o~&wCBq42NTh$v#16*1XI|5p zT(*J86P9SA3mVWX(maiG1q$zu_IDi-K zu?9O{co)ZmG|PNuWHziuHr z>0AMkB4aC<&OV;^&~!3uv!j9X1)J2m5cJWWfWIf2|25Cw56dNF{>CY2 zxKQ7II9aG~2Z3km+oQlU^=%K&hU!~4fV4R1GzKZKp|lWqu(UXcDj{AfX>q`gb7}Eye@W6}zq^!4i?4BdOlh%;4_8PF zflJatfReNjphsE=)FUnK05n)y?6L-X&6(pxY2l2?dzO}Y?Wf;C9MZpvccrc}%} z>JvnGd{{@{EX8#!vWG|0yauLy9wmX!oKxM5@%1Fo?dy8I=Z%5?OF$pd*5#|P3I zV%gU%xYWJfLZ|&)x6o<#0?)YAr+{Z%Y8%gnT&k3}_xi4JsbcR6zaK-|(oT+kh zR##=#X?qpCzTKv>pGjU3Zy%eEXK;$hfq3L9rj)!!aeCz5f>}S^xVw@vyvL|F8z%Dt zk8sO-0+eK4V2k+`TpD7v{FTfLEX7o7n0Puft*3ds$DP z#f?A5dirdgz1H7nOik7SX55CMZh?-5?L)ML1M)eniU1RDbZU z#E!bBd4^=k-DnpX3Kfe$@$EyRF}~LZBk1#jwgp6B^EVSj`B3i!wj8MCK{^qHz?BF&vHqZ8WpGG?Ie)v zb`y4Ek={Iu4kaAY-OmyaG5#KCzv;Ku3v5CoUo4y5 zXN*YZD0s_RBfXZZ`{;AV3z!TeiewxgHinqz>X~4eNatB)C}zDf6-roR#->b#^3|Y* znI7q?dO;amHNC;S%Z1)xr%rG1Y&FvxGPdgTUI*$BMY_O)8kF*~^9TL1^DI^EStTpS zQ9grREQt>CYbjFTvoE#VY#-@tw@s7#Nawy^SR@^kluQ;c5YpM-PdfX{q{DEB2C^d^ z2D_4Us0{5%=kzMlnYp}@>wNICMbcS#r1MZe={!^>9frG~bQtVP(pjF9j%{e(E3gh) zI$0mrd5eJ;1=hk6SogEWyhmW&|En%H+Y2m)yPtFz>`KzfYst5kN%NcWx}8=9<(Y3to|xTb(^)#+Dew)MHB)>! z_YKL{6DqC71&gI0xx>KV_=c4F6Y8!8C&;M)Zjbird_&GNM3P^za3?cojS=@bHCSzM zwmvIwO`fV(6m8Fx<(?D|lm!uc|+)y$D*Q~ zmoji&Jss8ccGcfn*%6NkqivT4o8M3dFAeUt(4Jc>yrddDRt+Al29H?tRrGU!&7kDp zp1`z~FLN$=UYazmwp&6*%M@pn^IOBuN>>=}Ojo{-y4))5M!xeHKjeQl_!$q2nG^34 z!MxlSPP)V-Gq($Jp(_4mwLN;U?Q5E!c3Ew|&Z%O1K)(#=zUNNYKEiSO30w5N&vA8` z;5DT~-fK{KOFYH#5aH41Zm4}x4?U>MQ}_fo=x$xw%i&ja=^=ONQ~uH!8)|QCatoCQ zxACiL6^xnDD(1bT=DYy9K9{w?S4j^+|7?x2XIXM{fli*-<@mtp2OUV+t zy!MCs{+sRlP@vBvswJboBs#?s_o}5!d`a~4VLv)QZ@Ruqzl4@|>X-7!+xboR*_()S z1){W;P+9We60UxCiTa6evas}P$pyT6sffZ+x8?%1(YLHodG6Zyo8qW`qvPKCo3N?D zSo)i)WCH(AN3LGAtl5YfjhH&)Txwl0QP(dUk=gHxPHgGtKsvE|dWEYP8Y|m1BHJ}; zyKGklig6PJHAD5jiD=OCdYCsNQECd0Yg11S`_id&i&F~RUAA_k?=J39b9%o{aY&(q zhCF`g8#A@j3?;Sk@i#^uDe7wtT(q7?6F45rdf7UjUb0^V{*m6#EFU+7N9peh+jW{) z2ix_y7TZ{{hpBMx62->H|6nv8DT>?AM3uGeg{`S>U3j{2%d$GP}^zDq!&H^6DyJaCBw(7b~uS;UtkeE`uTO^_ES1AcjY5h=0e9 z)^T(lkd|nZPqyFp83<1dt(7jjQgj4sh+ETfqN7V|=U!fW7PLC0+gtjG-Wr4c)OKdJ zb=Ag)^orG&)z))`RTb1B-K@Boc7RY%>9X~_sh<`B0e;#(z1phu$8!`pHyt!z^7ssux*I1x1%YJUSdaUa$F|8xcun7Augj~<5Gg> zOY@)8tVVbB2dl4KY{(OEQaS>g8Lwt=<+&*muu`9CU$8~&%JHB7X zJ2}?eXDJx7`Oh*69Mfz*%?%uCKbX^OJ|~#XmMvDE&8rHL$ZVeMpUviUqW5(^H}u|@ z`&;hU*E23<{aQZke&JS={c2^shSaYSbOjAlKDxyqZ7mJb#IQSK?wy4~u=`86VE&8K z43A)Odf9Y6d>Ac-1D98lrZ91|~h2I9qw9b81Y*ufs_6*~_)YEO|=j?E!lg2ZHjEwTqVSoI<> z9g_IUv_D9TiK6=T*TkE2G{(+g@e8Ey>x_KXDO7~@{-O0gVC>jN{TgpFqe^fSx-_0w%?hZ=pgtNY%omROKrv}@sVCd!d~LkY<{xsYR7&z%f3 z${}4@=-MQ)V)3ckAnJ&>QIz0PnsOmr~>j^YA5m5}p> zOprL_EIld6K~uJg%Z?F75F){zNg-&K_l8GZ3UUr;g_vOE;dM@p~g;$Iwh5l*Z@}%lzJ3d_x{1r}R3GyMoZM6=XS&Bjo=QIh`u~Ak|DRbED|F!l7dzuToXA)bDXqtwj`dFl zz_y44s~Z_>(n?;r#p+iqxq6lTnq{DXM&tq-=F@;C>JSF;NvF`%O@NKLY4U7Rgv5g| zQXm%E;nz|p`m(;FGm$4+W+F(P+j$vGCNJVcaeRob;7bp9>^`)X)lfGN4d&AL1w~#~%sKNp_ zJH^L^%FvA&inZ}oId}Z6fIDJ3c%k9h{`jJP{^&ff&o*tDApl=pg0=jV=%Y(m zLvquZdx2S(BzYD4CE8N^dw4raYOvDX2Kyvt2MFxc@3cG?vOD!KN5!u z+wfI!FcycSp0T(oUrAsunTh)c!}*7gH5eKSIR8d$N5ke6?d!#I+BXh;Bh@>W@&;E7 zOa-1!`GCn(z&HrU=AdIGiqH29(?gl?b;Gp8O_*U0lk*iHYnT@2Othu_r{y{0ZJ=Qe z2FkT5cvGiLa>-E^h^wz=+AHGd$_e=PQ2Dbm7>D{oG$_YV;h=SKPaJn9-W}5f2ImZ6 zUV>&Ya(8r9(m;Imq)AYk<28eV1OI7xYRAK$+W3(zxkRQ?q{NO)3@YQqb(Z7~)0h|* z1DZ<2)e_KjBDwf7XM!FFlTmu807?X2$M&hBC*g9VMr31weZgSAb$LRv5fO~G)g>oG z7~@cvvKGR6M_A9&u+j(%Rz1Svwvv8*LoAqe+KGK59>J{7PV(n4>#`I6f_XjgkYnC_ zdqcbfjnH9|mHs+n;N6GYf9{5xuBwTSY6Gzjm``TJoC|lrw9bJGr9mQuK;cxp$%IKM z^7WFy@8mQB_cAy2&ry(ks^DqLlGtQF7{&KvLMPR%Yw)g1q z7YMjs+x*H`bnEX+>|lEnpY04K`t*ZNFuY5!fuFkd9u3im)));4~mLX>h+H%cl zYWr=OO4A7BeIv)|nE_61Q_3<*^R3L8WtY@e^kdW{5HiN0#4@S#z{40@?}%aSFn6Cv zmpK6MFo?&hL7Yplun6PSc@61;Z;^51jnnaMdZn>UKHL6!*1gHV88?}CZ*9;$LtVLh zc`XX--c*1094j2^%go{3WsIp3Rm&c4yaa~5ZwGbQ3jZYf0)ZNBx%nYVrK z(7TR2z=D>goPYK^+kW!F`@ZnKGpB1%e7ah^B!&;j_wssMaqt=~!l=cY^iT46br;Q! z|89^pC0I_k4jz7uo zt!ZI{-m&uu7DBKR!M-%MA)e%pZxT+zV@Dys^o`s2sO?w~rKfLs|IO3&>wtdzwFPvA zL9f-j_WXc%bz&XfWrxgAX~`#CviJ$i6S};0zoMvhFj<#C^yIr(4s~wKbLkT}zwU(U=lCc32+o8g!GjdULJQ+`RWgpTE2_!hpN8Lq8htNH0=;MXp*#De9SD5cHGLXe7%B*;%cT zq?V~xqn|g56k}YzXd!j95a}S7MlR!sSJJNM6spBxwChsx`XK`Z32k|&i;Ol&W9u=x z#^q6=YnU)X60<@N!T7Gs5S|Jo$5bvkeld_7D9gRN#^ohX<;H%=0fS)zo~&+Zy1L?-d1pYn2KpKG8 ztSJUN1Fb6vLLfJ^%wcjvFOS#}QA#CqR2e~Q_+ic`ZhWPM#j<<~hp7?1jX&T(850Si z5Zc{=LME{38Qh(lPewb=kOLejX1bfnmj@MPw_%E1OQT}mj^)Vw<8U>HK3`!aho;S# zvc?PApV8pOo1|-*y5~k)JAA)%!20UsAJ0 zXHA$uqlsWKRhf|}#c@#EGQBwSP6T>!03sFulkqbZS+I4sjs#$cbI)OQ92NN zt<2u>M(r^zFqHaJPYypVp(q+QIUqbweV@LfJ~4?;8uL8`HU~DA*U9dgjK>O_V_&sa z*2|K!^NjKJWa?)643ZCKD<)V-d?(;n=N@QDY8(JW`*gHIdbbH!DpOD+WNnOh6V4$4 zO?^|cd`mtjpi^7Aqd<|0GTF0x*Kg^L0XUUeAp(ahGJy5(A(a zjFkZB1fwMYJT({O_6QQFh{x)sDBjliKm!mM4WN;|$!h@DiOIN?k!)M*+SLBTOiNoK z<*ZHLFQ+roCF&DS%p=~q5kT<7`@`asOa952=xd@2BOP-TeSV`?`V zkq2me5({8DM<0p5OGOfH#Z!G#N3UN1M8JmRV_<*W$VVj6_Gp<8BmoI+h}|NlUh23d z^Me|7_@$S_qmFR7pyJ)!+iU7 zS=Y?!^3lTKnI~?=;TU>^kt;@0dQy6b`UQI_cT}ppW_r29U&>~>b$E%Bl*8+Au@vzn z_4FuX`NLAzMu*)sWkH{m(Svn)YJ7X9#@OIAhus60dEtBjCxr};GB`gf4NiU7U2{po zu4`42K-^%g3j;<0NZrZ@&tyz4qjMKb#vslg;F*j;%wy2w|G&och)}xQSem|&$z79i zNN^KTfjuv#g&a3Pm+U|&^I1z5QgufJT!0-fwrec37Vuk!%lIZ zZsL{#%dG&*f?BsH)UAfvlY+^XTvpf7vkrT~lGLt%$x0VBI%4kqSDSmk%SiBTEu3u0 zOC_W?EZET|knZ0sbBr*D9AdKY+BfZD$eiC79LCpU<4FC9I8j3h_vrqXowO44qV~JB z2ebjnFmvt8-tAhTqrAL|iMY-vOBGeaU|_)XB8k@Bre<7SZ;F9+!C zrb&v7;?r3PF^8bznkh*zQ=Ij-&}K?i53&&%#!Lxjiv=%x$N&c;K5E85L4-O3qA`j2 z<1JwWna+U1;EZDfne~t9AAqp@mFbd!=JUVGxS4&V{Z>;uad?g$Wl4ZV z4zroPjy4{9X4g;d%nq@YCa}j-j4>O`3~M#N)L?VmA*yQ8$^-|#oKEINsfTr>BuH{u zf>)iYaP>5=BgHExS!j-sp(Gq3&#`p9>VMW$;f>EE_=QL0Z4r}$dk*Ah8nIKu&xnMrN9DiC)kHXnY=2R^jpGar8IU*4#j zinHHXl`LP?U6w|q+Kea5v}(;VV#cqS7)i$IES}M&d>S1l-4+W^bS=USP&cg;rDhZj zMtHNDd zi@b03^j&#^O`XZ0w3{hC=n`yD60-!GWjb^THp|HmWqr_$a)Y+JH(k%+`6?<|*A%;s zpMTK>pHH)dq?v1h@yQpvAM#;Loji2LG-)~Y^l#m3ekVJ04<4%X;0uA_F1vv-av3(u zQ!;FpTZRp#H@T|iGOqy5F2QE`DnR$vV8$MAU^d-uRGJwT))G3Ov@9J!EFaQ14VF#3 zLLPm{M210!P3(1c25t&|$WnqJwfU$>@GR5HI%o4Ws2w{X4yoJIxMnhh3&zy>#32r+ zXQyR(QX=i;6OrA~=(NT?u+f=}H`O;K%P)=oG47rt%GNy)W@ni$K-WkRDck#J^zUa)Fa7bV@Ob;MC?JkCdK zMc<_8b&^jkGkQJf=ykc#E8UBd)A{7t9lXW5r2$Ek0q+E@A^5k!^Rf+bG5*PNEo-kQ zXR3@zJvrU7qY@Icp3m9Yq-pWxaIz60{K1=8okjD+_ikX<4Qh)=VS8!jXZ{2-;031cWhY_?3`9`MNV;Hc&qi)#avC)L{#S5ulrSK+ty{EVx%ZarD5 z+PX}%%W4`Qv4DJ(+DEdXcro*Yp1+8uERifh*l0|Ik4tJBC6Y|wj9!5tlBnq}Q$gw_ zG{l*HOT?nL#a&36HjD7Kl2+8)%JBr5LiY;y24^Pln*FzGOs>EJj@$2h7X*WlBLnbY zoSTu4{p3N+$lIMaBfWR~mu6~dCw)x6?HwN4NL$(c4n3N7pyyg4#MrLT!?X*81trrs z&xHxgpNbK7R*G>#f+FobSTVA%w$zY!+DkK0hC5 z=#t`#OYDnc^&(Hr6US#XWx$>2stzBJT_|!k2bY))EKPr|L2v-$Q7O8lBQSgks^jhA(BX+CvC|n)$Y()2weYb`VEl^KlO70is`sK$LVLH#r{% zdI+W5a*NkRc&f$jx|tu=WB{;9^AI-a7JR6t32ctSU^ZD&d5PIGoA|J@DO-FWk{x48 z!HH%<_n@(YYWLu%R0+)%&RxCg&9*gdG`GU0Rgp!2}y?m<(n=?#KRGDye|9K0Hn zU|@B{9K02**>LS$meuY-Yh;gIECtLF`0UN%S1&1&qj90f;RGoLu;Dfbkml|Dp%A`t zTn1KHghI1_N%N8#9`3aM(q)ZWJ&w@-@yfouGb)EFKJH&btku)z)%@sn|I_An#BetC z9`II+x}zy$I>W7&@Lx|GSHr<|_bc+dwK|Kt)4DR9)5+_T=A|_x#`P~tMqbvf^SnKS z3a>B2^O(W3m{+_qe?{zGL1G`zxyPP*s{Yb+Ccc_`>**1l==pJRri1^2QQG|BgV8J)=4gS^GEtPM{3RidtLDk-q1lzXb##-kr<}^#E0}&on@@#umHkk&5(2h zXyB}uvFOc5bZ1x0MQ8S0rw)VBdPC%rTSkw1haoZGLEP!+)?+uol|*ZN zy&f`zW&Q-88ta%JPftYZO34Y~n(N*uiDgGZ_Lxz;dNYQ{NeJs1>j)3nXc-r`S!Rv};l3))P_IIEjzYD`Ay8j?Y5JX-$ULAT#1milHwi_) z56X6gUA8}YI|GOu!71&Z!g5P8Lgh$0MWMiJ))jA8wnV_4N`~>GkX{thkQUMm&4hU| z8zKGRLJ-o{$VDN&D5MvKbRMW)6w*lK(6c0sXm~>U$weV8DY9ruf!2DY4+w$af-geA+ky{;{|Pd1p5|)I54MCkX}w`5fc!H zkj&|ZGpBXn%xT$W&YT{RIo&Lo(_|^hoYvjWoYvjWoW^R;%;}NLoF45pr<+pj@x)*v z^9pB9>lMzNrnzQL+hdjHG;ZdM-TmyC(}mF-ID9N0tRkbYV*TX;G^dNyN^C_Jtv>;C z+WQ!uhB*!DnIdLFV@{K}s4N#Vr`f;tRG8EH+APdzdTRJ_=5({Y`(#P#KPmgX%c(60 z$5Ltw=a$-H-n`sn&lRpuOKY)bBF+}GVqaxGE!-n+0yG@s7W%?;7C{AbKJR&& z6}x}1u%16zvDU~QVSOT5u|K^bta)>s>rV^mJpYbt9wS$&VNHlyHLNdX58h|h@~t?> zTNBHcw@*9$j1^~|b@t>rE2CAb&pq$_q|?1%%`+~%Xlm^Of5Zw*HZO?OlZ`L zuxO0V?=lzk8_Wf*^BuuC&yhyHOJ7i!j0M(HuHHh-D%7Cl!t=Y4Vb_O11^9UixUu%X-y2*}4r%u-cDo9zoBv~xDKrTy30`bkEHmBas? z22y_EgSO3&uwEl6|7`OW!7tI}VK2@Gp zFPMMG`OUdQ&Iihr^K0`DIlnP?$k|n4msZ_Bj;Do`S zKji$^xkJv!%9QiG`G=fe2RRfJBVYLhO*v;iklv+S=nC_Jy~78X58o;y=ZZN)PJNL1 z@PfHR&X3E;`OotYIoHhHw0gK~c&2lPoPmbtugx8Dc9$vVm*yXGes%7U^JH0C{m1!- zoc}U+$k|<Q8z z*YKMM`aWJp*xETm*g#ADKhH0Oy}yjGi{>A~HqYJkdsi7b&zLjh47A?UxkJwWGUL8r z{vl`6+#%;HWy(=T#5{|s|I*wc=bdHBIe-2k=ReIIa^6y=oO9Xg!7AbiH z;#+Sk^PDs1A98*X7K0BQ8ubJU{ay=^oZqK zdZS9$(wl9=ioDb#kk=a|C>@{PW)Pn-o4s+MzV4a{f7+Xge*5nJO0ZO};;S?vV50GUY6pf5`a{bBCOJ z%ak)Z|B&WMG31r^JC z{jA%|NUP5o(wY@w-xgG?pF4`$S4K`WXUG}oHoR0Cqn5iQy~}U}q;!9IRg{2zzIp)% zI_ssyshXo1DQu*tDznl$0ojTww$Tef=#mkaLXb5qDS@n6!4^bW0KuXU`Ri$tOdzZ8 zYd}RMtahYU2B|jky=oiXF$}aHmEedsN$G5BZ4hg7Bvw1xOHihmEe`6{TQAUZbgkkw zy|rEFt;z6K1TjXonkw-n`}v9KQ0w0ffL}5IzHR{g;sNky4uG#60G}EFzi0sb!U6DS z41lj00KZ@WygLBi830cPz|S85KW_m1+yU^_1K_I$z*i1{pECeHIRJk40Qgx0;Aaki zuNVM7V*vd00r1lXz}a=PlFq51T?uEi!b&)M`c=Z&5U&zWefdf_d$d);**mNf&c@P} z@CCVZ)neJrS(e@0ZAC20WjF5k zZrV$!WZ}wg?$KqPxrM6J@m>LDRd(|p-I3Q1?=t}HEc*R6ds z4()JIxsVz5@$faW>)J$Bt3)U&T3bll=vDV2iG&&}lg)~LmiG^sHQaa1k|Aizyo;hC zRhxrRg_RwFn3a#?a#leFheH65834`SkP3kE3+WoSLO+K+WH+Js`wjGNax4n>lD2k7m#WU-%kz!iuIKBUxDHXs3So?srwI);RM-1*|a9H^lcC zctgC`T}}YqtwZYGQ-orMLr}pVI@$iQdBFN=I3-QH3FP=sj=J-_1M1P3EWx}vYDIhngNE)umL$VH+)L82DNY@r)E!j>*#JhV%t785U` zd1k${+(Ig1+ZAt2+#f=cG`MttrPNrf&$OG_23biiIVmE4z@53hM0;gtRBI0b&|D?%+vg zP&!Cd#;Vig0S;Fp4gQ!k&0uiwhB&$;YzBjaYnO)-49S#jG@|?bUQsu2 z#GWfEAy0wH>mKy!DhmlHnhKN(F?XCBEbASDnv42thmr-zK^hR zUNNdpvJ1~-XG}ls&Jy*cMK1D5?#8vWpUR4UccDAg2V~z%_*tUByE0TwQkAr>#Tismg6C)kF@K~hG;&=* z=abSDfY=^Cnqu(QlcX%z=dF&N?aDY@GV9Yk*d1|=sSvZ*JQfRyVnQC@=2>tGJQ=xb zBWDg?4IGBTVN`0HXE{p6$I_A%e(tP903L~xDFX1Awx9Sc4l6ge6a!cL;IqAR3q|4- z%`Nt|Is9)bQJL+-nm4jz<_=1 zm0z6iV{bViI+ue5R^PW5oxU{bHW1`!MJL8zEc=)I5f#godZjHHnL`L$)GanQEA~&+ z6%Xg((!MEpqP6`srXO#pdpXTbw#lWwl=eMgK`_}}1A4#}o-yw|dw(kdtUBh!eX(h7 z4f8PZOsj-re-*h$uegd<33BNhDczjr+ticRA`G}N8w#NI{Iw?dt?7B18?^UlEIEqN ztuNIHOk!JTH$ve~p66d#by~3oqx4L%=H|DEn(1kEo{jvjvVLgD;s1Uar#nKjS zv4YR^NnEbWNL7J2tC4P#6PYO{7;;ShOxzN;iq!w5TM1lp(~ zP}5D=(!#VBqAC!mC^Oh&FWA*Vn`KmO<7u1Lhe%}8NfD^FO4TqOw<1~91LiG_Jq6*V zI<~yB$}F_jIHQ2(pJ6 z@i=s?@MauO2^U)mTO?cB?@_*=O)03qB_~zQ=WK0`J8U29c7HcJs+F7T=PJR>o9nH9 zbN&1*!;Dw1#zO}ayR0_3xyJj}%a5DISlH=48DWmi!=Q;_Z*i#lhRT^B^EMQ4pmy8_ z`8yYP_Ba7PYO0Fu$1N|e_tr(j*6+m?Vp?-GwwsUOZm}$vZx`09?D)$RW&;#cjzKwa;lV;g&MhBTwAhF93T%jd5>iv!p3CV__`U+CLvw)Bq1o@_GR;d;bJ+(%fMK7y9#sMg=7Q2wXbXlWTk0Wr; zzM?Phj4JUSzl%0It-H-m^*XoNX@q~pZFbt!W~Za2%}&`@Q=6UYZnxQ~?sl7_K0cSnnPh1={@uW*~4(p=l@)E=wc>~z#NJH6kQ1e6ys>=P_o#Bi@p zN{blm5j;}q?k9uLm0QGM*EI0%9WkB{T!PB)Hvry2w}|0E^QFso=*^yo1enz#h6B1Y zU&LU~o%BTv`}IwAnV#7f`)GUiopg&B9HN|e)s7j%YKN{osz!}=n`luVHw0EKV6Y4B zo&r;%)$8-d4_v|!;}+HDNJjSKgOA${)kBYff%HG7`wsHk{$sbJUfHMWI_7Sd6V{I0 zatE7XmhmMgF>Hj%1lwYBQgj_{i>g0Yuj)2018!d6G4CoaT*73G)tHAP@G5Od8+br< z#lw4?#q>tKcD+%Xava(hwKeLm@jlJM(e^tP1aY2eWh2~hB~vS-SG;+d3lT=h_h4Uu z>^_|_6^k>itPNOJ$y>ds-7X~U_C@nWyZzciaFbXgdxZCi?0~vBM;6i?nO%P8DR3n| zwh-osHF5}Z$MW;TpMDAO0$6G?VqL*G*kh36kq-Jtt%T>sNaH}12Xbi7jNs| zXjt%77rPA`*4Olk{snE#8+o5qS#gcHa)Jn{(xHz(zRF`nSo_nVS-xMSu^(nQXAv?v zxvS8AW++FLRRqebvfD=#;2t=fE3#mjPi@a*<%7nuc}hu9sWJoGezZ{kpype+f8ZNW z02}GRBvK5S{>29444Al_If~{(+H5J)wYtd|bu?Ky@@|3Kw%EIo#$Pil?+{5$Jnqt? zv>aENGWI58iui)$$AU*@|B?~8h(<#f(WqQRO}RBjor|d9Tts@Ea}lu;%Dae0XA}hZz zD;H5-yTPn~d#-R16{&rJ6Vp=rMw3x^yvA8ql2M4gO6D;FlqMa~eK;e=nHuWNd`^!o zmSBQix3=G7_ju}D;2-7biAYYOQZk)$vbZ;Dve}Vy{KzS4*?~+YRHUQ<%{tc${#H4D z^asZeb?0Dx_RKIHKaSSaCOfjP$?0=7Q=;(K$Q8}k^AaptA8UPZbuOCi-#b}#E*34_ zg=Fcjo0SH53M}0}UI?*HYvd3t-NmGtg)~RD&dy9a1(RgQLYO4h$RSLUMM1KVCdm!+ zMUZ@ca87_*!D(xa=XgD&HF5}ZWKobTq&c!}-UyO+E`&*9jU2)xxuv{dFYaHkmpcN8 ziMs`Rcz8AHI7ykR(+A06yyn5YSKtD z;;s5TPoN?-Nht+b^{%4A@h#XJ(1XPAW9y+XEwz%UI=_SaTz*GGjwB&Z%joi&N!it4 z!JaJ#Q&N_0&KKJ74sf*DVB{-x@gtR=t=6oI7CU=$}paw-MGr z$tsiK)%1}9c&B;z$wuS9(W^=L+i5wDyIsB;_qoJSW7RNgK1(`V&a91r19MBRnqsw@ z8KXXonAR?-ZGQq^`O35{m+_H9@|(Y!Ffefgm^#aGRY|NRrl@4O=4L)S(`Na)`_v?B zd(}}bF4g+x_D#EZ6iS+X67ZqHx{R7TKazm0kv$XSM3R6P!#wiX&o<0+P*I#h^MDkl z;>W@;&%=FT9(!a!n8&Ua?}&>qkG(Vx^BmG!b(X1qhXt5bnCFP@%rk-Qxk4c<)Rm!z zc^=m{)n%|_U(`XU0x9K`WRux+(#1_2qFg4h9S_tL6{N7}h~1Wj9n}CsA_0|5YvfKB z=JD8t*JQXV%9&g9`*VSh5$17kR7k~+=0%vtp-^pd2vkt%C}AFVJ1Fvf$ih7DKUq~! z7PZ-hq|H8OzG$t&N^Hq0qls2y?_5xj09B zVhzTOQfp3Gv7)(}BQKdRa%AU1@QPR?hcHJLjlSbC`gWUHkh`1B=v&O~Tg>gNwY|&h zXFj*@`-?`O{DucwWuztfr5Z2bnAqeY5$H+o*jBJ`ObL7nnVUAcMhcHLp zHc_nf+&lX!wUjc2uLoHfoK<9H*aA29nNVf`QLtd0BwOy~n+3S-e^?t)TS(g=R`nnV z_2K>{NH93m=RD{>)aShI!qf4u^qgWG(nwLeI>lvKyh*Sl*iZ>jR(F=jUjJ4}Ur9N<9%L&ihxbNS z$^HB-rerO-OAQ=f)ZrGA4tL#r(c#{=5FGc`$RX%(i>X?RsanUIs`cZ+6J-9RYFQ(D zCdi4TYVBBDksr@KRqOr=ul+v3vK9IF>LgFdSB8*1G9XpUuIVQCjv!Ub0C}p`gL-S2 zs%51RXO*f|lp@r3?75SksL2P1S8sZ`f?jy zYv<;KYMcz-KQrCgpx%B4K!%g}QMYAq+xhs0QqIXvm$X>RnUWohjRrldU#qaS( zKL~SNvW1Q7Y%@&aC`o)tZC&alZMu^I8qr>RH6QcXZUBUI27n4w)N(`%Lp&@Qv7@c3 zC$7s#*K8G+#Z3f52%D_W0w;nYs~h@O2qO&BNQ*EGYJsj^%bTaPsUMHE_c*D>XY?gq za7u&=(g5XK2IbY+#)3fknn8KFhf)l%K1W;0t5A78rP^j0+Y|}~5MY}LGXUHBgl%2! z#kOF**cPl8+k#bNdzW5q=;ogGdw&+tO~t*UXejpFoYxHPorOK~@ZdbA4CbICy?iDz z18pX9C7g;jF}YRXU@ii-xhQaXGF~^$%1q*CYwOo`$2P|=AU0dm*;cCIP7zFl@3^$ETut{7HL3&`pHm;_%_S-v}G$Fv1$mWBNdfNDUN)+8{B*>*l%-Y*7d)i zrZ=K0Id5U5gjDrlnCg%aT(#lmj0%3wgAF$+BA(8~uEcozr-LI5^JRTme|t5FKyop8 zX0o!r?D0J?4xg5+kngRGMzUS$HF-)^ZsdeL@eC%V>@y+^*`Ph*lD5UZ01*oWmqjzo7H7ii8GrP0! zs-J|4IQq&~ebal@?TZ3dc-3dqE$3BtsBvC(J4XCe*IxiHbz1;!w`B{UpZ>49V2BTD zIq)r4>%osmfNgS#yl37J(7%M5A`(135mi*m?NHkx{~Q8mgZr>_k+3*VdXc#%fwj7$ z_}y_|F8vjhluqIP2`m3(i@&YV`#doO|B+Nk_NTdujz~bp0oVe2*EE-G?J;GpRxV z68vz!Ljw03u>Fr8!TXrnglvC9Ol@T=vF9e!C09N4bUGY*Z;Iw+Ws~LFs--{yfKbdT`b{@5JADZuJ|_J@GfLu72Zc`q2JV z#_l%?E33fD#tbW~{1;c`SZU7+E3GRg&e0dGoJq(8TIZa=8{Nq8P8*lLcd8FIh;BR| zyIX_B$0vOwR`-%Kjo{WcgUOq-;eHs_+rzNjocR#7R@n0kzkmC^$}etB>gk+t&h{Nr zajq7*oUXBxIl@-V3SktfIZJKs+oL4wTkC9nwZ*(PEw!Hh?iN0%XhEGRRzJITwi%do zid4L2h7V8NXVFHF#HZUz6S94+l=X6y*1>W5TgMYwGclOj`LHEdOq?lHtmz$()|q)X zB!dfNQ)&5^KXMLa?T!CRf_N(&-OwOtSE3TMWVHDcefE9Tc zpEf<6l94*2dZf-+VBI*qx*Mm5Gu=&~sS@QqJ0JMSNYimaB&$u6gX}NmU=ZSAE@4atX^?l1cb)Nw9XMsQk^Uo%H zYr?68UGt`Y&Of=Q(=k&b*MixQ0IUCO9 zzFZQO7gX}M@&exE>IA}*)eL+!87Ec3xqE&b;HYuAcKgGPMOnqn} zZ02W;WZ)cUk-?-guff)@v-C&&N#M+D&o;!Vj~4z1&#!tmWrn8MeWh}FR~3aV`tq^@ zYMCBg<;%Nvez@}D_I;T_*AnB`NK+(Ogg}L4Ng7p=Y$-kSB>J}XxgglzzoWY~a&eCQ zoYlUW-J(2FP2^K*;ncE%r;WaXrz4`T>Vl`rjwOU|E-6CU+Ki1;N*2p1DlAYsWO4-g?$4=9S35;vV@|cg#j%!K% zZwDD=kJT1rMp)e}|Qjq=Amp+wwSrPf-Hg{u`H=t+Xf0{K(Th z>I5fpXpn*e)KWt3Ww_@-GMIUnq$nzZ`R>^oX5E>JC8p+zkf-{p%-hOm`yiJ$I&oro>a5vV=(BGTO8t#N(*Bma`5{1s#eBp zk%BopON5<&PNF4}CLKA3P629M(9qX^Aw_XBDb3_Jc5q>LMillUyuCI){@NE58d*Um zx1oD-bB*_{S3X;o37Is=CRSF0@gn?9gPai>8mzsOlxSz4H%qYfH2MmP=xtxsnLgE% zh|KY3?JXK;3&}v6nVo)g3cMJfSqNSXYh>RnS@eegY*&K6X1+Kv{%IjNF|3h8m?Mh? zWflv{kfR1A&3^B%t)KS^bN%5W0@S5&k;{F|*M@4ZNn0CQB#{Q2D%mcZ6`NgD?6MiU z=ati3_U_1EZ;kAkASY5#=EI{!ig%J{c;nVl4r%)}e+DX~E1SNID}-$^<4ww&uv!!3 z{$wsG`AJ$GOGGIuth6lw{3H}vVXwEM$ckI9=!&Hf#Y^{=wxX-00wLXn> z@18;{_BHLE^=lM_jpftCVrze>D3jiHly@aOgBiOvW<0eRj)|qa`9&iTSrT|I5ozzv zusH!MVJPvo)MCESg31?q;e65l4le}l&l=ey+)gB4Xi@uH)c%fF`+MC&(EhBEJrm?a zw7yy!!q0m0{RQ;u-2!0DC>B!oS+s)9=)94Kb?wlf{W?C z3n>b4)qGKLe}Aw9pFioo*2o?Sej+OFkCz3zo>2Cyv_#+eZNk6ugK4qgtK}2fl1j$i zqQk3JG3A$yL~*@Q8&UELt{&F*^3xzB8>iby1hTbN5wdYqXO2Zp>$1*n;KkaEEs*Np(BNEUn=WFKU0lY97hS z1S8j)!=hJKm~vSh#kl#Jewj~`ZeBql6IH$HM2d7b+y7)s!Q2%sO}8tN)*MmUlI4Zs z{Tz*TqB@xb?eDvlW9i@8%F&I65~mL-sg8xnJ`pQUA2fhNx7~5S0UWLcaJY`2Yglvx;q(U^ zttrdG(yHHlya17crS(`KPkK?Dj}F7euur+Ma4)>4=Bi_?w866xyGtY1%0}#A+uMXr zx6)--PN*6XK9JUQoapG%+PV4OCVGbU`JUC%|DZRVU+itdD^~YKnOjQ?@eM=Q@Tn8B zB=yU>(@TlJ=P1zz)0Oa~UsHL%elh45813!X<)waY?C%%5&e*II8JyC7J(P_XM0%x& zRO2p& z6IHHF72JHR6-*bwP z%2hx943#&}YPX7pQ@y;7Wr^|j=E84;#peE!Cpw- z*W0iY=f@a*UMY+xdus0wC?}2YA>k0a z(l#q5Ilo)ydDVsdDd;WTZ8^~&copud8XgBNJG3_zuZdXsh~=i*YWCjLJhm*8y;pD5 z8M&txquD2bveHY5*6}92>p@-1D{b4IC%w}4{raXl$@lGxItU|g>hLVP^r_6l<3M@Cc47-2$`Oyw*vhN+vEHj(h6p67rD^v+i>_ko=i)?h+ON6$t(_nk| zPKYx#8m6@HKS_&RDJtV~POJ)2Qh^K`r(7UP5G=FZ z{^PID)Y^W!-@jNjZvj=79GfTdS2L7!i$<4iKt-1Xvg@_>A1wf(e3X_CK~n#4Ni>@6 zi6KedaBJHg>la5c=2v3+g{0QzYP#oXOKR{Jmp|2viPyT}d3A7nI~J{7NZ0eGdHNmDES;R*$4cFgU4$ zN16Xduclu+!-ZhT5$Bq>+uU&JuX^v~^k|@5(OHF_a#`c_8n6{B;A9J-N^;sqJWv^A zD6vy{_F6%Z~gvS3V-nlrbP1;PGNC#mh-+QY)G+W-mwfl)I1m4zYJ3Q4VXQ!iED z2$r?~Y$uY1c1cFdR1wYUq|v3=Gfw(?`%c{<&}zFr6(=3`+qk4QDJN}b3?dr!b-VqG zA+gRFl_q%Wm>yZ0G_RZ>__j1zl8mkDEKQ>hX)pF6G9Aj_DBhhk-EPFIEep#^b||kP zLV1w5w)Ju6?Km^-wjiT#8^3f|)H&g)#%iI)Fp4E2den8vvx;(w(sZZLZ*4n!21H{L^T+4LYK$ZW zWqXAn*8FNIZwRv0y)NlfhOM&Rcxxhan}?mLM-eE!vHe-gxTJ`Z?Oq>Y%T;Hn&95R| z>Qs)cG{Imt^qe}3No!N-DZ^TAv3A#q)G32BXH~mvU#0@ge$&9kkk~@f6`ng^bcN3? zgs`zSatOM@;v89=Bkh}ZVMaqts!SxO!m*3=|6n2HA6X-ZFh}+*x~&(G%{kxP)`+$C zjs@hb&f7bLne)+}U~}bF6su}MR_KJ#N)sbdK`7SDzY<#hU0ZnAFW%Vv(;I#&P7dNbdZbM)g|b0QHM_I zih5nS`_eh7!553Us+`n5`JSfuT!2w-ij4hu?z9_U6n*UF7%& z$>KtHFlKqOc;7Nv1?w{swRpC}nI($*U^3#-cIk8G+HEFv=i03ouHCwG?bZv|Zr!DNFm4d~Kn(0E) zOs}6W*4wKVf~VISIRyE-I7b%J9GN$Tm%qOdtT$`q;v6Z**PotRDGPs|C;iTw?QEY~ z2y?_5IfOZK(@1^f#^{w%mQJLYVdP?l#P=v3^0A+g#+RO!-fzDbr6{58hi+B!MYP%W zCW$sjkqiaWBhw$c3wq1;hY$lAdu@Lc^4FsrKzu?#uHXXXI;I;x;n<kKXJ$msw>`>l`;T2R`Y$Ph_uaqw z>3cr^

    7V5)(0(2hor2jAsoW{h7SWNey(Jo`c;m^Gi#g~|Il@Kmp&llqB>J}Avb?;{uM zeM}1WJ`-iMY@R02audkLCXhuF_=?Oc*P#I!Ac=0Wh_9dF8+nJxM?o7+=3^NQ9cD=2$OVQN+_llh) zb0z1Y(1Y?|c+WC0R3jWR$;p9uzvJj2=`RSL)!%v`%Ir{%U`vaP=> z0bi4=)4?!V{lphC72)O4B}^S+{m^&5x-ao@UH!|s4?h?p`X)MNC&|BdOpjSRy12ji zn?_q9l$&2}YE%D*n=7-(N*PX5IQjn>ZCYGO(yZ0)bZ2_AbN%^+#Z80FXKYzI^Q^PC zo^$TD?dP4pV>nvAVCPdVyvUtFu$2GfmzYa#1S%Rm6yRbOl4<8Zum%hIQEl*4-{3V5 zs)w!h2D^NNU$X}1)Elh$2A{A7^YsQ7`34VIgEQ+5F7yqKJfJb4z>W{{DZarUTMwJ+ z4R-nlk6MFJi}!5O&3blIvLf3yl1_I}6LAdGM%VOULhy^yY#f`q}&qP;SrLH!qCxls;ik zOZkU?>o99!KcWqz@%*x%>n|PAYBemz$TxVWH8`WbT0`I9gVvy7Lw5KE_gjOr>OGv_ zu$+HnjmLNIBrfOq@p7J5Sx(N*DwY$%;FojT`pda({yaa|KeOS_)#tk1H~2ei&;Z}t ze1m_s28;C`&h-sm^=0iC#+-5ZKF2qBn>A?YVXJTO9&6ArhO^yC(ANa;s z_?!tP5eTifA#WC?m=3efC)`rkMOpL zVRMV|S2ldY2*!5|{n%FPJChbe(xcY<=eif3}Fzr9qnoa;xr^(`s7hHl|^0u#Qq7D3*wXE^uQ_esLLM*|;yK6mIpurYk z(J8E!gY+S|{VbicR% zHq=8h2Zr?Anzt%V>kZmz0&eIU%=pl+C`XR4SQ)!kZH=)bSLMH~E$-zJeEZsm8X$>1}Rb*+cEC(w8OoZBWij}3o8(lcF0O8)50`1tavRpg$GDH0`H7p{9kmJnOXZ5J{j3m z5B?MWFxjKC{LWW1B|G6%uW`s}YslUAguD5lzYC73+gtVGz2D_UxlLBGd+g7a{=7ro z$v(51U6K6^uOEFkFI}G9$e(9ip54IZQFU{9c0GThP&|*z53FPJbRO>Ac189q?$P2J zE}z!xAFxM%5IG zU=8kYk9DT(CD`pZ|AJFzS$@8Tl5C&Zm$H`nHt#RDY-PNSP{|_rnMQiraz&`yR)kuS z7caYc!~%?xmTgT`=q1f37NPcmiu#5&Q|njtR1pAg<`{S~_Lb$tLXq7ehfs=8gj(96ecF zteRCIX*C(-{RR_6UsPnf^+eOPYyzo44T5NnO`tWuMKXwhT%ze2L1%&>vDtwLX!U}9;_qp#E!;}5O3an)qK#W|VQ-;X*+8^n z&V=n%?mO&-je^gedTY8BL#1<|!*)4yl7SAks$#XE?%w`E)k%TcTA^^K%oXa>S-Gu7#{Om7~*71vS}C z#fSC!sURB^Q-O*3UBU0L-c;K2L9ae$L$B%ft$FlnXcR_FYcRe|5SpN^{`~Jv0P>)> z{E{`OStwd2tgoRdwv-NKz%@aYY^|rQwp5#9?H<xzJ)Pom`lx4<{F9`qS}akRI8*J2Cz5O+B`dAuQ9t<*(iQmN3D30u9C``}UhJLs>+bcw){^~Ek zzC#ZOzViLIXE;V@`l}yW=J&k^-~M}Yly*adN51i)&+-Y#gn#4EEC1?yx&c|p24Aq# zArSI<5If0wJZSY-AAkRS-&C8-_j=?lzihpx{ngtK{P0M!dhoBl{~#cHX#(@Qnc9i= zagkT&&Q7I(XqyYPYwE--)H1&t0np7Ot;+;+}3){|=-9L7mb^5rOHz&7aCHLJG{TdTLO zz8a)PXayTB-RqX+&bF5lcu3sG4cpj`TZb8qj=bwlU%(XNpJY5i5K%D(rADjX@j^0x zp|kSZ2QQfLLG^X}&rbNDb*oV+^zgb5{9HMT+P9t(eQSBbx2B%l(YL>H-O26j_g5eK z?Sq?Hybo`O>n%IBsKp)X`-A4iy$8a&?&2Q1`|Ga(P1ao8Wp6^)2Y0OT!9Ts-_%evHSn{SF*4S=kfa^zyDtZQ?F)O z1o;}=eExs#RXIr9cl_F_K?7yt@y8E>_MLUcd_H4-_4ZX}FH1uz__fz`2auiL-d{cP z{;&QuGg-Z(VYtpkXTybYO&snWQ(=t0v(9kOW4L!zhik(N!`;?jJ@}sQ+^yBVXLo&d zox{+Ed+r*;oeBo+JL?R0JHx$acV%_$wJ_Xs0ho_|{o9jP*SRlkxaQrT01Q*Du6<{n z;clz1uDuq9dk#?jyRUgy0n1y#@b|u7P<}T2J<0g)?aVI(xFYzxv2MpZepX?*U8mrw4w5cbw8_MA8(62C6I~ zdGJ-QfWkJCjt!8>O%a(iWqrce4jugsgtrs@+9C`7_!r)%m6>O4kN%4O;@%_Q`+)wM z>#rXEhtHSmJqvW-_o)_7di~Y?uljCDRS*Rp`Y*QD2mwbv{0_Yh_dohyZEf4E@-JH7 z@cCQCqIe9S-*@ac)DR92PZpbln+G;d#7@%xNWTneJw!@X+nbBq7KP!swrRTxR|NZ) zySI2NpHHbxV0W@%k`h6PXrAZ?l@zyKo_zv7NG@e|udYbQ_lPedS0A$9a5Lovzuz~y z+c&z?H#(@_JikL%SRb_N^6Yl~Aa?l8x+1(E;Hn;9YroYapV{vl-R2wZ^Nn80J3M{~ zuTYeje;-fw4qkfz^CN$gY+^ZGJQ;lCm)t!XD>_*ZFVFP0VtZW&mVc!8|HvdQ>q~L^ z%1q+A%hg7Ax3RFPjU)8Xt6}m3P}ya=6W0Yw*pTMgTtH*d3jhxg8SaZN40c7@3P|bTi39; z{JK%)JM(+ey@Ri*34N8QZ7=y(l$u+Pm_q=B1JjHcfvF@n8yN8?-EivTz4C=kV~v|z z!5FHDo35pcrgbR9V{Yo>4Se@cw%e#%?eZ*(BUjzD-1DRxRBYp8g?05@CGr@3>wh~$ zOsfbzJDe3lW7D&sCKm7CFU-j9)%2h%OmBK%{`sZ{Qd}F~FuPXM8<{Y@=|L(?uRqwM zBtnjqyFA;&g-v`Gm$|Ew=TXJs_KS%n9DLm{PM_EGce8HPr{vX@?6T1&L5T)5u;y2W(H70Gbj>q0evZ0InY_|hE=cLB#jzqWtn4%hd|I_5;j3KKSQfH+u>vn_|S=xwA@5bm zAzev#dcUr7muGkDiu`(zt9az?x@!9!djbJSy%PZgYm9)+xy2wjvFSk{-AO*2_O-U=JWhAPD$fo&2t*?3YUD@(F$qHz957 z3ca(X8~CMb`K9Zxw{-d>g~|pG3NHB@5;r)azok3y|MQx6FaL}oMm#D;a2TY}2tJ`J zBe+-B-qUTg_YFXTMf1DD$jAR1j&Yw&!%f<}F-T^QnjUnuM@f3aZi!$Fk*gJUKq!C^|c(LObcU&xDHC#Y= z9D#_QHaBVv8i27tQzxo1AHDqHp^38g8Q37Zrbq&|eHYt*MRs)PM?!9(Yh1{?1>UOd z!<1pYgO$mj=5Svl6Rt-%&CYmIGA5LO>`f24l2)1?bR?}bJ&<|5@qu~cn%>ByOf)^P zSkd}}JqzMO`2~KG_i88 zoG3a-j+rbvEX1P2!p1}g^*q#6Dx$*>i6@8-I}6d_@VO>Xt*E(1TZj%TuDOX0mjuz_ z+dI_m3unf3JNf*XSEomJ2#XJ&>0Yw6e&9^?ypr92ril*uuU)8j>7k(c3s)rvF9fY1 zAb02rE4*D-sO!-kS10efa7Y9hJOq({Xo)S?qUa(p)9FbPBcNv@5b4j_ECJ&uw&6$^PUy4C|gO%F`|tUvJb=Tnaxi(uGZs+EaSVgVAwo`t@!x#_{2u(|2Mtc(Rs4|-z1O%G;7 z`TW>fnc0;zC z7(2Zr2S!&UAG(-cg4QDha9T_^uwDcn#rN|i$E%R&zT)NcN0GlUM%yDV4@myXb$=<` zcZP`KzR6;A<;)fe1J!(5_acKG8}cqAka^N|63J`2Z+)tB`gGCYuDy*x_mN4$ef=Do zHCb}#P6tTV`%Z|1$%#RC(|SJYWkBh5hqWTbN(_GY-3YZtqYm3zI|(RQQmo6cG8$O0 zx@f>g1Dzxk?rXBQb5ek|gfJmfA~hZpKr`&C7h^(qpZ^O<)6N!fbjMy!UeJ9Lzd~pE zzNRm$v3>bqIh^p>V+a7!Y5!VREK-l?$}l7tcy_|;gRlA>R#(&@Y?quw^z5N?^A8h$ z^b#kImBP`HvTXg}H$KDQ-9-48HiK8a(eCVG%Adv@7njc{wOn&zOvVHrzWn`UXFw zyDuD_p$-pTNdAX*=)&dhYW5$=F5$?tKN`gMJu)oa455^{zeDg~TDxkbrB z`N~FLcduPozV>@8)*CKrJTra(d+!|*DJGJYc+LUl6 zPASvkLZg`ptE3V2)LB+$3(i(~5NlzT2eB4bc@S%1l?SmFR(TL>VU-8578X75T9_m1 z2QRD;_1iBLQP&y_Ti7jUM{~k{q(MxSCSH%Md_rZBoS~_@NZ$42rP4e@oAUNJ7HaHa zD?GHt8hfbfu=b`c*x18Pcxa0@_OKfs+QN-JoCyzY@x~tFHgMn60^+10z;$T;y^4@+ z&~$H&_w~oDb%!Yt^^{kkHmS2+O?duj5>QnU1&Wv#TY zTq)CSoe9g)Zp8D!9|+s@4EkL)Y3XKR^Kvf~KY3J`z`~|$3@=)2Cxp9Nhp5oW0Go(K8SKH#)Dez`a@u9R1>J##fL*rkT&0wP=0ps4I?W+?VJon zad!+36@EgOvgd~`c{vO&kPcfH=ACDfnEh82OaQg(abbJ)u_IUQbzZ3cmslXyM2~m_ zC?W{B`rj}?%%16X+N~^23@td6p3N8UY4OkC_ddp!Ax46E*OEzGKKOk6fE0=1jlY#U zp2H%z^-!W-_;(Q9yc^d-E9c+%=Hqsge~X(rw303!$kdvD!vlTlb~Kxo{&hFQ@bt+r zZvR2-YV}d*W^EJ*#`eMbNN7Daits^oH1 zgx5^YGo_ny{No?oCANzaGO;0<4@E;pHnCl2%67`33m;yqzt)uPT&|Ft$XflSQ}&ls z+V$V0IR0{_HUD1zKT}OC7gBTyyX}xQ+7`j!(Yy>#TnGNTWPwL^$Ho0CXvpO^>g2Mt zbq%z|om}RFWtFh&s%Kk&=wfWRdK`aWFGEqpikwf@%riAhxSF8A6s;_rqSlHw8V9iA20b%Eave$@8hPvy2mqJj(D zD)CK0+K6ut)^0O8;vN#X(hKwK7Wqu2U61(33a#?3d)vg}n4MM$ePsv_!C8!f5FP$# z7(=HVLx(YRwjnh$hE6$#;x=R8JfC6=XwDtgQ|t8eTlF6%j*hCO6EgCgZA_@eCmC0| zExxI$(XNG?tBtiCpib@YHSTw+)+~#b8W%Km=~%46`?TH+IUb!Ppbjvlbym=B0!4Da zkFx@y$~WqK15{2W+T$^qA39^>;1}M>_no+z!1kR}1l^IZ&FZWZd8>@^%4{PXW>z)Aj8 zJrPaKFR>J7LsBTOl#H_VKl#>|s&&T{4mBhmXR+1cJFt2g`ns$(e-IUGf`ej0So4&- zWDLJ3{n7^^+qS`aQsf{BXdH+P$DsN1a8Edy%hD^kHTRCE@EQ^+uWAP6ZJoZs6` zw}AgZI8}cUNh$rwjCzqQ$`Egl1g9Cbr-iA~0D?>`>P`j*-qcZN)*T3^^)$m4=?`W2 z1dvqzR>#2AR@Xlj*Yt}5ZGt&<{xm)+`c_nY{9HThmheFUs83~K^jIBQIZ+J(Jj$!v zosIy7PigW^Lil0NS4TpHC^#dwP`Ea zN=|v!RDW%U4vN0@4etbyL?NMX=1Hh1n{T28utC6K0Ex_?WDF=e0;C8Yi1XL#)1`3G zBBfN`mW45FEUKZ0XFOW-!s^@7 z`>a(6C7xBXv$|p`QCDmB!3c>`1{y{^rlt=M+c)Ji&nNTU#z*8f4;D4y{$zWrGr zm?SCRzE$za-S}OFke)yRCtk;{H z(M9K8wC$qp7oB&}`8zHeUNpL>X5kT=?IHgx&ZSSID|&j`(+a8XQj@{PH{Hpb2z{5V z{rKXwA3t^CV_3`JRi6}+F>$`LYhp`Dh-BC3`Og}n7dRHeg)4{n)jkpLl&$$EvsbGLkdzg5l=p z54)@9-LP%({1y9O>Mkn?6)P?NZoA(dN8_%6nBqf`6Xl{I^ut!{yYMvr*M6D_I8Sr6n5U3VJT-Fi ziI-EFkOX)aYkc)ItWnUeek}wau5N^wYpq|C9WG6F7cC*hK*vf}BgMYu4Mocveaq*M zZ<25MlA`5Hean4yk=zaR4zqXKcMlq{GJrcLH9lN6zCSd6U{d2hFB?A+8b4ZZT!%Cv zkwm*+)N*U*!OW)`c^RK>#8KAck77N03aKijtf8-GhmzT zTHEH0GjX~!4oa7HZRoNXqvNHMS&Ey^RxOcDXS*PW#fRdL894oxINm${G};p5IjqVg z-s8TwRD5x(|Kj%XKA}dQHJN2AwzfKgYowcD4#wXs9`Be4KL%dsPk1~|i$wTUuwgMc z5uPF{Bh83qvlV72Zl&u(*$BYM!suzOd(FOJ8^RYHyp4asMskTpVk^Geul!}>?TSS) zZr`|OenvyT)pl)YcpO8sjbLbYZ5*2awrvS>owPN@vY+P%Y1hUI=9TCyD!7|(m|2D19K3)?ByP`RNJ5i;L z4R@n<1!tuYWZ3%2Pt;q{Q#;+heY<0K)K%PO>(RXFJU(~A<9K{Z?tQ6p01J3B0*pa5%ucC;*EsNq^Hgp5bSp^OvB z2DZwrq^U%PSjL9|mKrtHoX7Ff^g4TuiQ2U`(dug&ti9ym_1Oz{t-Tb{(e2tXdbjI@ zh6cm7^GhBAwl+b)rOApG+cxA9zcIVlXn2l3O+&k`)etMPHMDC(!*Z(>CZwZsav2$^ zY=q-yvAvCrD*$*hgz6(!Ih1RS6=<243Lw;`VisP5iD7pyA(q{K_QKhE<(c*6(BQ|k zN36E1of}O0Y$sdOgzPomr8?{2o05U%No$z65XhFhWgL(rV(Qv4ZyQg&?^s{?6Hl-gVo2^<=Fv8I)rk&@mRK%17f@^)?L(hU{0 z7WesVe!l7dK9|$Zznx?U2+JmF$GeBj^^U6N@ie4;8}eiGux`vd5<=LrW*F+_E7vV- z(x8z7?Ajp9=`n@s!q`jeime2yYof>rXUnjN44t)JtHc~D5VCX-wg-hQ?J=%< zXPzG)tZjBg*UKR=*@tD|;q5GcI4j6xPeKVnbIVL$5MG#BHsqMOEnKW0bM zjSt)ek(#H#20k?JB8#|lS#%g~Gusk#n;FjLyI+X!l;w4{c>Yp6X(o;peBb;i+$8ir zN{4f!%-)v`i75b}TH=mtUg)GQJlT@E#F1wmt9JKo>#`iTGr3cA#tJRyT3aCtvrF};#$K#_m@t&Z?Vdy) z+vyT`eq4QQOd99+_(rOVG@7B|tE~u1&`gpn=znQHCyGrIUq}4s08cMvL2()YOI(~) zq9dK-_zGv|OxdhoDD9k`WPW}=ofp*E+S*|Frvku!ERIf%PsOSJy}=vg*>@^NFXsg7 zS^t(@8<>TSOB{|c6eG}fZ6MH^MALs`;`1Wn^8(J7#Vr!hI$KncbIV*`;-dc3M}{Yf zyQr_7gV$@qu480Yu`T@MLn0&WbE(4JPKbxOt}pRp-Vt%r22;9gy!%v)L$kdsY;U=k zCyQ09`=wLYeK}wpNGCtVqDX6UAq({O&s3oF4G0Sz#^rAQ0)WmnVw`2#WOqB$5s4IsyJ2nul>Y z>us7Xz`2~AQBpH9n?Ia~zw7{SiO#bUllgor9L{5LK*iZS!PfJ_Qd@XYqr^uSQ& z5(--tX?WHoS#GsoYyyZ$zAl=nLAYh;=mng5FPFE9hPsvew=p~B;^v2r!WNCoMw%=4 z52P*yfj?iH68Ff?JsG!gKk5ci^QsidMz&9Hr1cPgXrK10p|BmcCiE11DPaPh~Fa!L32%nd& zjDuGed*_&y!g-a;ZuLU4+{*tYv`=Y|QEjm&cjmTj?QL>t5;f-yL^Q>gv(HW?nSCyf z6?_KxVpS3|deZtIlq3m#l1s7qWvqs0>*Z?~&UUSYgc?md{sgVga;?r%4Nc{h`c{qKN8q@ljz%QN)9eD=42ZD{M>kSw$~1 z-mUKCty+?3yvx;AXS-I>+$$4sR9$%x^^G~3DV%+F`|PoeDF)io6wYKj*qF1lNYRsG zW8~Y7<{vkC?!p$md@bHmYgH^cqw#y+%9-dHuGJalJc>5P4lLKkSSJIjQkLMh*1VRO z*V0mZY0Y`rN3UaOI)yMAP5?McU{0Rbpd3V_B8MycYO1 z-Mlt4ug#m=o7bF|ee}A8ft?M}FfV<2;(jf-5o<{Ch{yIzR$+E^UL`!M^CFL6kIie=wVG80zUsV`x*7IM)x4*h zSD$(H`)v%llZFO<*+;Kin6tz48urVwMoX$$g|HbnVkyM%RWl&041WugAVwmPfy%0Q#46?v;meBVQgL$D$~5&k$z<> z=7pG2%&Yiiq$3Q3v{Fhw%i-o*wz8C7b3QdVS{f$&g7qhS zEKFE6){FVnCVbR;l8Y7$vO44Dj%qXh^YFc&iN9Bya@lO7bH>cE?k*p+$RT$5pc)r* zs?GX<&u1uF)Mh=Qr`ojN9KQJG$`@<%j@oT>;)kc0xN|Er@gtRC)Fys--HA`=sW$QZ z!^H2ee6cq1sNF^-K1SrM2XsMgo;fd-4*R9Cb*Hl42*AbG{w`NG16^Rj7T3*9Xpbp zcLQ~T2}C_H8BW}D?MzvUNb*=as!*t%SC_1vG>p?iXtG(%gTjNc+To<`(?Vz(%x4wS zJ%RSrX!n72MUn|U)sXqkK_of(La0QN2?FRQM3POL+M7%yiN(eU1(|de1;+$XLuLsM zARosY>#qqtF=;8O)(-PRl1G$j44D;5Njq;zuy!i!bQ+mYBeU7q1=9!8MlpKkqxG?9Sa6$oi%GhPrx)s*|~OR&x#Q_`XcRAI+Xr;GC?J|wKJ>D zX)(LbptQfu%&B7Si$v^bt)W=eJsA_RZFgtf?#{T~XzqwjQ(0Fw&71y8)5jRSQsq^e zdE1{gQ}O?4=#{40tUf8TaCWvmJ8u1|PPID1s`ble+Ho_r0?kPtS-+xwn5mMUn1Y>& z7+b%ptyI>PR^DVN8=0(tu72iphOgZS`*r2G!hWMMMouc@zUID)Eqze~CPCFg4bR&u zoBN@ecS6-Hebvr%svw=!EPbkRw*jPm!TJ-9z%Lp?ZNd(YqZYLpH+NK30CjZPdvYu$;*;!!k=+Qbi= zOc=GOO?*O6wTZ`qR<*zC#G`f_ojB^^x)YC;yl5D;i62{c;uCtRP5iMSR%7XlzDT?3 z#G`f_ojBIMbtfL%=%QiNCVtSg;HX7y$0zhun|N&PtM*r&c+_s%iNgWv^m_(gH8ayD z2Oe&7G$`{&E6P06tumP-)~>Mm8n+@2!BKGYTutc7mc-?8+AAR-*-ea^s##7sN>^yRlXg13&^GV4?R|gUNyLZt zFzT5*2t~FM)x{|?)QUMb=b+h|O;h=hC61FTZ4^iaa#&jRYr>;#2gp%7JgZcIEKiwJ zTzA^Gdf0H}fD+p%Vx6gobxMB}u}=JUPUy(W47eN$!G}vqHDf#P+E84dQw)T+!qEr( zS&NzKziy$d1Agq%o0eNU&Gra(#OcW$S~7ba51$cUs_(n!{_Hv-E479>m67+5gI#fQjg<<(w6r4zG}O=8`Oh@z zx#qU~^E4O6=U<|@ax4GLTsT*ck32oOZ|>^!i%aVE-Z}RYw}IO^^}LdOVvfq@y!H1s zSbBgcsKzfbr&;&M;Sy&cULZtK*GHDzi^Pv`iXnx=b@OX{ zu-q?tDfWwcy|!QMTiCCo7x?|^YQNMkB+z!visUQh4{~b%5U))(xEjb2#c201fh%8C{!Dm_JKZb=}a}1C5jfVYef2P+O=43sLqb7<=d( zt*`d^P^c0v7`-alf4+N~e~4&K*Mh(DZzR5!IQJYf)5GA?R;JspGb_$+dH{B~Moa!+ zX>_~>pua0SdchT~N5T?XyfN&vXQQJCK%&S`{vp0aSN2I;APN~4tGc9atu#fd?W>a^ z6}J6qLA68!TdL#Pfg4&;baDNTH4rRV0fYKk2U%+G_~m35JANtuKla`R$gZop_dMs^ zul~5V`|87X+YE`NJ9!SHR?)MuME;S|JR@Sn}9{#f;Dt!A%D ze=$u~?jOS=E|k&K7F8&tA-hy4qb@smD5IwP4MG`-tc;-yb4(k~Sm;1_^>hi!%dnY9Y9qurfxCU)x=mIa%xRFb%mO#pLV`O(cxMbEoOXk9cafR&nvTfVcz4@0OJ0JGNoe~KQzxNktcM(scH{jV-Ys}zeN zvSAp2hl81B04|=rGqR)w_Q`|nLKol$*~J2zambk=b}=rkE|f8*l`oXh65klk&^@;! z8mH-c`d#DXIgtx0={K`9N8y(Cl`PGXx20Wam&W>a!e3sZRRW@q{wJuTZWo+v^GN3Y zn0m@5`Sr4OorQC07H(f+MO~K#iledCTsdzn4vx3SbG+Sp!t!?UOmDZ3S&96Nvo5_S zPb~HQo;=abWGi{V62DKRmMGe+6m|US`RMJcdwy$lfV+$|o!rg5X^d|!aAZz;14Y8P zkaTm-*%i+-=2yMys>*?giBvYwebdQxknV0kk-o>$He=C+)UDhBLrD z)0(rzxXEJ{6$x1=n=%!!RN0j_FfRBV*J%J+#)5n({3nG3mZW(b!M z2^p0%n6hr*siYyiD59OaSf@ticI8gLK4052VXbHKo$qP=j;R{LAl*#T721ZQC+WQt znGoX=t)crTGC5dvCU;J7f3a1$Z(^1vxzZL*(rzCyVAi_tc$1LIh!-c*%h*hz;v=+R zBLUpyo-5rNQF_sLD{nngI+Mslg+N=Ha9Y(}VGtef4xyIllbw^~WS)}Qg^ji|DU#hB4 z*`m197R6aq24xVYFzOA*!YUTT?5&4NVLHStyQXLnv*TG#@l<})pQsA;tzJv1TrF+) zH4>mom;Z3aA(YXSBW)<7p#wjmjJo`0LK!tV;)XI3c_oB0Vrdk^84DfLCtA9#si})= z$9RlyB@QvxggyU&pm70kHvpfI)S+Nd7?&+D!PL?yJ&(if0Ci%1}mt?iKd z%6`W=gUhVllor<~f|KMnKbe~8A=0KvBW|15-H<6ZCNG<>K^7a6SIu?{v}SL;FlJYI z%&tngHE)$3C z9?;B7sQ?yp4G(bXISf2(zP5=ZsACJ|ppH2nP)E;|E6-&uk-~M~Q2x^H_jCt*X%Y`b ze$y%}?t#|JWomJ+J=J2*A*nU$0301lSsHGFCa)Plwl{iLK$|YSSZ81Awn6psE0CaBV;&3B!*l*oUtJ7(=LQ$)@vcb zsMl+3jdWO0tG~D6)Y7GKS?HP20^$L>NY|5V%`KC~Z{0?S z4$JXR2`nt7>#6lYEk>%oyCXeNSPn&yOFG?0+uZ2q3*KKUu$f!Cb>fl&*`kKD@IW2 zXG3KT??q8=4pmXRMbu4Mim<5@bE9Hz6pt^9#;=IiyNPAxW4ClS+(K@Y8E=i)AW6^D zw==(P14!4Y(@!rdf?j9T-OJ+jS48LY1_l256%hxo-5r!R4tj`)lko5hil@NZ33Xo( za>MOJ zDx`$vkGq5|JG!^O+r3g56yMhoNK!xM3*5=Jn7%7IKs_4)hFuCus@?qPe!vJE2y-ACA&l)G!YC}E|wb3R#8A|LM5^KI|RGnZpBPYJ7J zo>YrB^2z@DlKBJ*i_@LE9{^Q^X1%K4SclfliU&Z1w9SG@J-y8pSVyApAA9qVIN7r$ zWaB)sHPRglL;gcpB}Yvx9KF=W^tpqC5- z-oOoD+ZsuQlznu6^Ln~B$1haG4N4S$vd4NJNjgpTB|J^#U%#XKR=aeLeY9!JKSHVt zQq2pOBil?25`==;>GEXcS&9-^MKnIJeu@fB+&XQKS0)~3j~}=L@=wsKt1?U% zm4WaztlR1HlfRV|l*;|ynQ;L-P3-Pf#tve#G#@>|8_UH^S^s6~kjw~pkW96>+Jet2 zByF@N>r72|eEn7?@R_WqewbsHU`+1s{+<{lTS40YqEAb&&i0a6qBUh$UqlHewpcKr z2Tf!CO|Te=w4BrTAU$jQIKS2UqpboahvNb$we7F_=>A=YKl!KcZ_Y>8z{dXOo$vVR z^6QTO;Oo(RbTz;K@o!Il^Ggr?;8W+%M+^Mi{rW?1e)yB0_|YA&nUA*70KETmMk>f^ zJ$`?VJ11?iD{pc*(W21%lWnkFv+tfNtNu2B>*>)ie@cwA&DsN@u?Xbmg5ggPo)y6A zVD<@N@uhn;Y?15AB39pShOr@OnZB;5&l2Ezg@E_g(oylmH=4V=# zCSrIQRNzzz0fzz-Z>Y0-OczH3zn=}-aLzMBn^yk#_r7_@@4Wr{hyETU3aKZ*_w`%f z@V<{9xb&=W>V!@~qSxK?ht_W!LnhT>5b>kR#5x?NbGdF2i5~HU6qD(&WX6!F1lM9} z0~6>3@MKbJrk6<+yB5PLk?x%;jqJy!dek#DdJ7K{R*;#lgcX>q#x8tGRGU+kB;_V? zFa42J68=m`B&j4Lf?xZvBuZNMD3u$NIX>n_ZhiM%=IogzGHgm_iR$JeHqr&UdDQZ? z`&Y?NUNN7%m`3rac6^JF^YyfwSqRGSpBj%Rv!!I%}8J|KW^sGi2gWI=|d zMrzc^ld|0p$%98VEE2;@TA)}*1#kAH!<#kVeV;yok#_IWhJlt#2w7HilM%46s6CSE zSQIU(-Z!%(Nn_kAVM%x~h$l$^o|Uaba!?=hm&wHS*^W!<_NQd!pw!sxv`bpscg#%o zq!%$N%peN@rqxTX>rMPSX&tbaiSAD%V7N|TmC*NebDVXAWrjQNdlP!eJ(~0hs}np@ zYuMF10JD=v1a!cwHHznphS!sZ>~!i0mM!&!1JKv?rqvTh)tm1Ao%Mtv)MuyMNLZv5 z>){A@RP;K%X}x4Uu}{4cl!^n+doB*4) z%p6d)yftKnpQhMfVapX5;1zfzL<~ATMpB0-6X^WRPr(2L>*qEM%UD&-fbOPT#(16q z{YB%N{26)m6>Ip)j5`>WUCsuI7^4v0pD^l>v8vvEoxB~O6QBs{1i3!2wW*S>k)Z)# zZLBTKN1Qm5)V#?hK()!`fO-{1Sxrh6WDvda{KqUP$bY~n$NaEkdL|R8&7Ih*#RwHP z|I9GqrhROjPU5Sd^y;5>Cj>-hsfRh(L{4)*$Y3GZAaRrKOn$yr2q7n;T!(;EF%-nz zM{c8-7@9=EOA5gkK~O26SdYsMCbImRAbL3ugMvMzD!|fIVfQUgRREcm*!}JI=GC*P zINuSCc1CtT37a*{97c`U=@3v#`n}$V6nRr1GW{=+nDMe+V%%(n_m|MRiyQ;<^_2)z@+ za3!P_I=&}8NKvhM4n_X_7pWEcv5Kb4I&gWkad@3jw9Ule? zdU#Sr32iE}#T8HVex*Bl&`RHjskfE>*e=Gh4)t1>MgPwg@tte{ z&LuavPhxfBm8y0wd4-N0fT*p}OZf0>CLKE4dy6$;2R3|?skJ}hZTZ~ywKaOF_B=16 z)+?g_tgp=m{~vjS0bk=f3J)DZ(a#ZrL;@nq(FkJ68$eLcfsaqI@(&`2#eV=nbFMfJ zw7Sg8&W235GR4k_z&L~-C?J5JYx!2La}B>Y(n|3pBMsz~QFDEPn*W-k=D#@9yo}-u zS`$nzbY97B$@7hkx}`SRj^HWOeL&K=CYSoZ*kVpe%Y5It(Cqfx9~S*-QUMo=^y54Eh&deUsn2iOX;+) z^gT+yGfVGlI&#`sIlIW|={H2I-%HtV7>s@|nxl!6KP(it+ek1oi<3Xbdadov`D8^< zK}$HG=g~hj`}4hezi4x^U(Z|LYiW1t9h=oYJqHDlWhEkJ+@|N?M#65Nxr?U>Ay_f`Edvp++7)Bw;oC-*BnD!n`3?Vaj%O9w_;y$PsD_#4{_dxap! zbgBjWMOt&)zSK|Oy5EtkD=ns>UEW4-JY7J;FatHidLAbg;umx#_^jzZa{|~o?uY6% zn_nB{#X8^cd&a)D%3X;aDRjg4fM~!?FSPRxEqa;V0l*#Du)rY`z6*GwaQ4vsa8pfa zQ|*S4Gxo(HOrnh|KWKlKH9Pfi|mTsa* z<)>)%qwTsZz3YrUcAq=Dq{1_x$(wD4PB*Mi=-Ha+Bx3HvZTUiM>|=J$-y*G`Ec>1{|qYe94Zq^EDV2 zf09_vf;CT#L)$dWC=`7o4$dxX8nJv2AjXyPM;wEBx+;clAdrskhE7IhSG#H-r8pTi zV!D)xP!m>caSQr8xY~q)s3prX){Hrl4X@pYt^3S|^-jW>nVqn18FHs|O{J_7rf|W7&7^$g&(&lw=maDl4N#>}nT&Bz(vR5{RY^D2}Ob@;WxDA@`>}s*HT}=}$vFy>j zW2(0{vkpndVh0*NCZ#xGyXd=t&AYs3!)o6+N*q-LL#v98JZgcOli{YOAktp;;7bUG0}hx^T3~0kxNogiHz<(G$t5C86W@R>`>3N_WP&z+s}f2_iqid(a(%QTx&V-DiNiR#Ey9 zzx2&TZ(X%HV$A6Ymog??8VJG6aSyjg^qlp_TKudbx0IGw&?UyY zNa;+ra*}gZdAY{qE45BVt|))$8-M9f_fZ@CFzXwdhQ`1-o@M?{s;IQyXpwc?I>1DS zYLd}ma2`V&=kD-kh>yTDG7CBWO^HjkxfDSH+oS)$Ov3QGHr@GW+&`OQJ7e3E#bDKq zvQ1&L((K}#4sa8kF)gX^8?7)zS}80yG_yVF<_xxEI(o=>D<25{?A2G@JE&QfO;}7@ zJYSU%JAr;grtL+~w?QXf9|&g4_#-2pSA65ie<*F2F0#8&0-gboey_*6+NJ4UE$#gpLR$1()|MDO z`3*KmcVdCz&9YR@)@s{iljHVXrc;zo{~AtLn_doh^$-CSM;UTKZs9-IL(bXGO0>`>NphOeDDbp%4lF z91|gX_JIlPU{QCI@$dg!kYLBC0tvY;_(|Bq6}&VvG2;K!K2hK`ek^@aF!=*vJ>8>s z>e7r&mx~P5=I1NG;aRTd2HisES><1A0FE0jKin9T)EXdfs}kQ+f3+l~>Opl~;*O zy4&;|Qh9ymE}l;1{gPDPHEe!3-?_F_-nOZ{6O3RiU7V82yQVkkRo?bG5|`HO=uKoQ zulVW{|0mfWsr5hE{pS6Nv_@BIT*y?9bd1b9F(Kk>qYKV8_)kO{_1jgCarUH?>Na$^ zSl%5sxfqFYC}W|sL5C7T85hYu9m?pNsvD?kR$f=3FM1LlLKzoor4D609sa7V#|h2b zvCJ+|9=-CT{#1436TJzgPJ3VZX}JVlEMNIhhK)RwVIvP^*vLZ}Hu6x0jXacLBM)UT za<+LlCy#Y_vW0?2JCJ&G0EOfqwyUkk zA~mPSF`!`rZWjIoE^ST@1x-|1FJ!yao=WEWiAzK8X%^lVE)C72S?ndcG=x?i*U9SB zF%pb@#~XBlO|7DHlUpO52f|Xfo(HOfjs;ndaZ?jZo&|k+K*zcFP{1ES$~rBYKSI;_ zBQ$M}vlA#FU`u;gFhof?tmm-~+ol3p_XDyx^1h5E%hKJ61a_QtCds9qu+oP+JGviK zY3?b5>#f=09FoS;y~XQo`KvN_8^_ri-K!`1%F-GUac_(WAsu&IfY(Plcp*r=G{b^1 z9ZIW7j@opO-D%y!P&TDQ5DA0C%%l%6Gc{2A&rn-d&o``|!H;3XIaE*7#FHz2TtL+h z{0LnBpa#cx5UkJ}%$(StsC-y-DLdRaw z0>76rgywzNZ>G?}K2S&chACAII(*epM0>I*@xW4d4VBW+a(h0yiKAZH5?`E}kJKqh zaV-7KDO1!a?mD4)rcP*9s1tgwI3u;ez8HYjd!mCY6AP7A1kE5vmD;pb((!=cqbD038ghA)3+Q zFgmsf);Yol`<-NqiItSPQaei3OyOz59H7x^1*6jH;ks$NiHXgUa zHniN|g+j}A07s?Gwq7ZXs@3F{zN!NWMQ@v74A*O_&n3HOeucB0yzH5=fINB?Vaz4_ zCi{)+;HyWX|D#`%myGq4wX5bmWvq-gwRnN18md(DH#aWB;!sGSejON#x?kT5Di~vn zy7)bCu$=0T7&CY6l#zk?;N39GrY;Aw6qd-W6hs?PeJVc_`W=BT09jWjrqbdHXv(*pEg%Z%i522azn zc0?S~%m*R-Mp64|pm4UyX}h}JQ>gX*XO?Uvz_7lDWQdDKNjCjalFjTW$)-0-vbk`S zWb^b~3c__n19?GzhhcayBp$r>&D1(ukWV2IGBpb;il5CcE zLUkgafM6rJ#w{nK~1Lg%2)Co6y?j#K@v?h^MIBkf@vM`@k+>r<=aYrI#wg|An z`a?O`xWyt*M-1W}Nx_RZF!h|xpA4?Z@xcN@Swd1-!9R6e0@0m&>wR zSWcSY%eSJP8ooV3;Km%OACi+A^U)jDSPvt5Sjb6lUQ>~i4k7c1!5@_DgPi1KAd?qJ za2iJ$?Tf5Oiy}A?hsjBrG$lDn>2vC#(o1rZ(oIfMdPz=Fy2(jOFUd(tH#te^B{@my zT8XUws+@#82sV;!$~1YNvQ9!W@<(d&5|V{SbaICikeuRW0ur1mEFbNf8J3S~$+i&^ z5=aqo?3&3WB%Mw@lY~Stk;=()lk~bJacPApIks3I3~UlZ6v%*fTuCsHXmeWOO6(w$ z3J^N;cY}cKl~BhF?PVbW&toBWy;1Fi^hHYwgamG%3t>w}(+-*5_BEU;Gyy%#Hf!71 zlsWkkm=tvDHJ#G2Y05h>&umE*5f8lPefBlCb0ur9ZLptB?HLUDA|RLLkPr(+A~Xjw zzr!h3V1!qO^5T?-@=h~^4fgofDRyD**Jv5pty$S!!LknWM3Zr&6YQG~Eo!-0)C26T zzFueqOj`F58g5gf7!7YQAs9|Byg3=Tmy5uf^K;1|V0j%&v_#;#6M>~?5Im|7fe+z- zVfDc-auK+exrs{zu0!MSl(Q0nPdIyqv~XIgtS<<`=n;!zPAGjVxaggrT?#_tDkvfN zChPXHUw!sYqBEBWg!dek^wpGDZo%#u+!ouptb4-Cy2KcjtP7VeWZj!6=4D;>-A%~V zCE`z#WP4F*y(<~>7CQaXdRNJqEv-5!$uy;u#tx{Y~-N~8+jL>?7WQ%SlG%W)F6f^wV%=dReh{#A~18!~3;I!ifD zWlt~1RgKMx@^^M}oI)v%mgDd(F-zCaxg3W`P?h7>YW*LQCE9CkssC3wE&>keKersW z#*k5!<4^~6afo7z>+LC)<0d4Ih6GOM``sTc$L%S}aX26k$Z_v{0&?6cC&%q6r+BDf|7uk*O@>SpmR+Jh3M|dc zN;WV92SxlT9_IE~Ut28tRBzOmWjcv|HPPGXDJ9cQcL z7=b(PmZi&Fw#-iFvh^|BsXb~O(8*O)b+0TE*)Iv=NA(3m@yf}a;4!ys2lg)6K-3X% z^CD*#|Fn)(Qp_+%eOp0sztF|XEPSyAxjJdU_KYsN(XAin}jWfj` zSd+!~Dz9OhJUps72)&!Q#&t zwbWc3EPnB*1!zOC_=Zu-(nZ1I7mZr1`oZFyC}TGX5>MP@)Bb#tb7iw^o2eX@F2ZpB z=Wez5#T|V5lS+AUad>TfO4EQH+7+ao8|9#fi-cSU@mG|5eW-{{08V3-+@RWrkvBjqiN8XIPCXF;_VG*+{Ip9)#cO){PCFY)lvFIrKiJtEJ>Ws~Y2LNtVK-grNo9}f zsZBhd)=fa&$=5a3vr}!ZTT*7ecJuz2t$+uxChUKc8F}qf9rg0F4Si9U(Rdp=U#P4> zlQqk3ik*bfhE9gb?OIOglM?SaW=@pakn}A}hSi6;w_!S)XHq%Np1KxS)1nj;^DrU2 zt7C^Qx`xC7OXoziOLyTo@^m6zxO5l4BTqNd2gX`(+CK1wtLgIWi_6PfkiC(@T+#j_Ftz2Z%VWHM@q@0VeJCXLTMFDaN6vkv=D*b$XqpZOqc> zbe2Y_7&nV@)HWO$h^XmuRxY1~^f*h)XDl7|X+2mtk%oGlPg>xC6arytxB5Y01vW{v zWcz)vBhf-AS)3I1~{g4UQ< zS;Kji=}aB%9O?M_as49x-0T!<_Q3ur^fJl0VmgU)0@a$c0_OvbJskHVl7opx_J}=u zQ`#zH7wb_C^q{Fs^4Yjidw32WyH5jO`4q!1T@tmVO=1e=lLm4qIiL+2Oe zW63bxzB&bLOP}Y^MMM&vP<(ypcB#M;w$9`wAdOi~Tlpa$0mZO)SH4h89rQ!Sq?m2d zyS@`gJa7_y&`A|4I8n=}fFJwg(vRXA0&-54b4C|C%i1bc7q!6)nFBgOBa_0ddUoa4 z-V^$m;ohB|8>MQRPORqzy;5W&_8r1iV|7Ru6_8(ZsGgp}quizw9=5y^-OD+b!?v+2 z>7FWY&pD>|oqXt~mVJCHKeKtqg^e()UB&l%I24B4k{a1fIoP;fcV($1ahuNOqA~<& z>k4J%m1Vy~rEQMqU>rKi+;|)%o%Jl>)4(jyb&=)SXhw2f6*-*P@_PwEPvWM|tFnmhCAJ0=i?@B= z0cYZDrWNIvZKe*p_PE+AXC}_F#$y&UgQ_1vxEOY`Mk?_DH}juUW6hLGL_Uu}*;2zk z(oSxyzg(^*-kUy~?dHuco}6Kd0>?A|^hbyN(=}Hpox1`(mX$pjEGyAe?Pfw2p8N%; zsX7DU)lMGG@4-WD7y`M=)PN7sX+NtFhTOoh%6d5Zn=2U4uBYwTpm`fjPjWc-__{G2 zU97z(;pk%g>P9Je*V5P}19YSqKfVj9jgoNB)pHFrn%;<38lAib8^Myq=Ysb%CP&>LK${{S}4QrPYY$({b`{LyFV?IVfUvEXXySkU_xbXq51u`k9>aeh2+>i69Ah_uAg09sFN<}Q$;}-=RVA_S-Wej-Q6!X z8zEBQySZw147G-sT9UUNF%l+bNB0Lh{e@MPKp>V%A2QEO3mqc2Pni_QEOb>vfoczn zsyM6hpq_|%hxA+p*Yh*OW(dDELyRM#XGzM^4Cub^J+$YB4g1wXU{Ty$rd#J2<_WWL z^72@1XmxTQvukH2FRQzI*9x^lyK|5>B#|g`A&01sDr_@>m>|8z%Ux%9N#B)ZL$n$E zD!R|aex*KNYB6A*J6j@J%oHswNXE8p&ahv3tez35u|TjRhG$$cH547KyZhZG_SpEd zB~V*wL^lxMT%FZXJgu7ksw$DoyrmP(p2+e4UFfXQhDs=7wU|RFW0f{ZLK$6chlDbw zwebL$iF)MF5GrBejMogr9x}6@P@CKrm=4F(?)f0BXkr=6!pkY_9vv1_-Y<_YR zv0ait&)F`m%_k4452b}b)w^1-C}BLXkF}`Lic7~FQ%<+W)D0Rdr)#IxdV^`nr_*L~ zh&F}bwC@)wHk@|~j`IsBF8B zw)(S4>-cAWmvb%^xO4{)Gco~?6I^DPufl(0)SX`(M@1svzg4Oxs2>n>n4w%E{#0F} zy#TPWwjkSZzF=dMT?E9VifNu8RT;f0*KK!OfZDlj;h1|CLReMAaTol;rSy#Y-@ zu1GZ#S|1@qq34;$`p%cvFG)VG97QC6Yq1kp^Q*QR=?5~Q-PNFYA+USOI8oi?b0?}B zLY$}$o7NRgCaPn3Hc|cH`%f>bQ|_dw@@Es(PaJci`q*&15LO?mhmV=4K3>ENaSP*E zE~;~}nWIZ*1M_ryREwFT+m@$WVFQlgR6^(%lDJkAhUfKz)Hw-HG}T<^iDjND*4xbZ zaC)Ov^J+eRJU1a4lLTHU)9(^xW+KAde!L~ENX z#jK9EMCrL6Px$u(yfHjtn*Ubk<+U}#rhztU*umDeO&5M4iC6j)hn9#FIKgkf_cw0y z!p$emhjIDCOca}iyw>iu zHS*P7UPD%wp3BHX88-4zhK)RwVIvP^*vLZ}Hu6x0jeI!6Mm{b%Y#T}e;@XuwIFJ22 z2=ox_9+Dd`k({MLm}^Ka5vEE)zM|orSd|8ei_R-)EDxFsl{99JrcRdT?zpHe6q--E zMI5N2`5+Du{82%~JH2s*tX>ts8TmK#S65~1jvdeLuk|=1B)`X5D8q0T$}pUTG7M*- z48vI{!*CYLFq{o%2xl6rhP}Wz%;#$yMNR;mJx6l#c)G+^)3{cS0;qG*i#A8^0%(9O zdI3j??R8`Ar3el&g|iCyd}HnE*>fRc;I~Xj?O3lw^56ob8CVL+9W}g*45_Myc!k)@ z5!e>5J4alu-8)w|+_!tHwnm$Hu;Xhk)Pd zCkaqFp1yW0^Le7*_%MxK5j~(>?KbNxNcWKceGtd<({1`gGW5my^|hT}U%QA7WK})v zt2)e6w8gkZTOod6wDsR3KPYGmAzG_uK^l&>PGCF;(bn4(?#bo-R9LwJ4|k%v)w$w6g?ZiXZLQ6I9=+Cv0k;o@kXKTw!YW818KDJ$f7OJMA6w zW((Ig-qYjOX9e3G=XxA>{S>eJxT25S;x(DD%(tA4f!RZNL7387uYu9TMsn#6!%BCP z16`<)zk@P00z|<-u1j-Yji|YbZ@+4yQ!_n*u^V1*!xsH zZWZ3K;D}}vcFUL?P~#UDB-#3gJ=P*?4KE!TO)R(ErQ?-vTof&bA)KUHfc#>aF8Qxs)}$jhFDcb*YNZL@xe(TzU!qFxQk>Ks@YXYJ>vT?&K`bH5@FVsMVLa+@j}sC3!%t3 zpmEm#JlrE#|}vB z$jk8>9!xnTFwH4-<;Xhp?L3jLXC=Q*Vz!2K%mFVe z*)bVCAIBA7-&^Fz6~x}XyDuJW_E-Ok1RMfeG{FKPJh%1Q-X_?VO%PdCHo?{2!J2{x ziH4Yc0mrIF^04(g_icLebm}bD1Ax*T(xq{6dh&E> zMn0^y{wmi+U@Qn_*vLZ}Hu6x0jXacLBM)WR$cHl)I*i;_xZPqvNU6q%kY2eeC=(WV zaV)?%gIiw*)oHiFQqr-2yyT!dt#Yim6?Ix^CVf`L0R*@+iv#q2E_tx!6zapQgu`Ny zO_kQ*ww2dW2h1R#E|g)Y3uPGULK%j-P==u{lwqg~WfU4w9Q3(;rK7KwI{kA6Z?W&dJeE?n7ol2N9jN=BKADj8)es$`U@sFG2pqEd#V zB36v%Ri-t|{dhbL&`YK$i(oQMSroGXl?>~}PPp&q@qMBKx&H;D#z1%{Y@=5xu0Hz?wH&u^A4hfmpdOasyB&JhNnWy zU8lxl#{wi!F2xc@P4PwRngi-iTi74ZN;XBS7w_5Q~yw-7=-1;v>{D64|pZ+5Z~^-4gGmMIps7G)FO*LAqs@VippM<$-Itjhfp%!CtH_yyOny#Mm=O1OVc;3jT1#c8}oN+hc z94N`_adu?I^f=iCz4aPSB{lB6vr*$@LKHdnq>?yl@90K7&1j8LdWiHDH%$A<7JfET z2RKRfAL z)U`P{jvEI?GY#vT_Ono6=sl`wSzCIv(3Xy$t+whz-Q% zC~c@QN*k(=(uQiIw4o%d4M|NxD+sAc=RcWh(g& zD8oiRoUzbhep*dPyGUV8DASRKHK9yL$~7UuIH&;m z^e3YJpmCf|{mE3xiX>|4PoWE$1<--ti>kKuHYi_9!!b7tR2(j3HKWXdvUw-G1E-iP z&Tej32A~_AaR<(+=-xKnxYS&zI&~@TD+<@J!&Q+5Pao?QludPnnrp_Bz z{6iNy>vgInl(9~yT0$8Y$oW2$alV}9Lm4wV)e_1$Piki<<6Jxb8tCphPVSw!G?KTc z?G8*hOBfKHFehN=8?_4q`$WmErc8oTEdjF2A`a)JE!p1F?kipnT1X-o0%pi8slzX` zujRG&XtF-b0m<(6-pxI3>cq`BQ5+9(PF**!Exzxzd3$FvG-6$LsT2esEcYt88uODC?gTohB9JN?Qq6I2b#4F9r@45Nz&E=HhS=@ zvHezmPo|v)uL8vRE)yQJyp)ET7#}sh(?BFR@C7Uk!SOA0>Z8V2)2s~jD$&#mW_XA^ zD&sk!Bg~*qG`AD{mWi^)A9G%lG2Wfez=!fJvU(Dl(0`7!Pj-Ko@~WApBIE-to;X+*5xdgp4jjX=}EM>ciS`V{`ywAU$8B4 z1sjQaT9W*AWr*Xi{0_~eNTv;fzs}5vRLUKZ?hbplCyq80s&H|Y`@wwog861rts z#$Hat-=^o(FGsiQi4VuW11^HAWM_s@Izh+fz=j@y$utPEONZ&WN7%9#Dx4%znSgC?B zw~#3caG;8KB2pF3$pik8)dt7NQpYA?v;3bP;?C)!NrbGaCEKXH%J4mz@V+NH&%u#z z&U5VOHw)jB(^*q{Yx0(IA%GR3<&UqxQ+|$mLkzB#j&GjHJ12vX^UgU72%XkDr+`q7 z7D8e;07(EU(Li*18i0^;Y{Q#84X6%x{>TXNEb7QEO`?v5zunv9ExTCBjvLwONIRGp z7=3YGk(McL@rVMELM#}O=0%M%$afQ-e8pCMun`@*kz*4j#)d5Q!>7HNjbl69Nv_F1 zYsX{R39rM`*Y#^I-4>l-gjpmO4sS8NhJrBnn^QHEJ)ldO#TwDrYUv8WGviW-?Hb2> zr}7Zn1ZZLB(-lh>8~&g-3r5OmuGmG`wi4`eSb%LlKUUZ0H9k7PpZ!fPD|{D(Zs-WPzU;Ae)1!im^zjTU1z)DmRR2CPT~yWD8gW~4uXY*L zT@hWZ&k+Bwh-P^s=FxhJGhmHNOx7=q#Ll+20~xHXQ1=l#qe|yjCi-!wt#6DT|Mz3{SF`50R`R_7zl|t3=i6OcphO?+!E+GeEZ}Cp%^pO^SyG zbqHFkr3dlwk;}WjJ8UTrmQs#b%EP6UW0rEXlycls9w|~Z&imN}U6~L;9Dw=hd9QAl z=6QdU=mSb`&NeN*DayycfQ4MoeNCgVgGQ~7PGn~a40?|cN$dXnWb<&)q+Z-hUZ_L2 zoY0J~>NS5wxBiX`ZUII?*UpwM#F~1^3_NqgT#7bib#&hdai7|le@(~WY!k9QrA7D&&9J~A1 zC^mK=mU2`UDpwb4Ca2vuCZ{s9G3#yI{hoasi_1U=krrGyq=LU#yB1k~2nv#5^Kf7` zgc>L3JyS)(fRLt*kQx_!D3usdP-q&@ITbu5%l=g7fA(*(!+6up49t)o_|{5qp3~Lj^a!F0h95G$#!RI zy1Q!inziSgd*00X7p%K%)B2}9{leaC|Dp{SKjWEm8=v({&la|E1CF6he9GeOfKFQyIvFtzy}XRGblSaFb?k z)THU1-J~f7UZLA&Y2cNNhA`%bQOT&6242ail?GnPNJ;~*WW;TTKHSDa=YJ4Hm?U!! zFq$h&66Q*35u`4vkT%n@|fEJ3b9HH{MFDjD?> zHe&Os%q3b5ulSvA6YLFD*a!=BfEEcK( zJOuf*JZcLLRQaMl3f#3(;7-Ee79IfjFoG63m!3Ty*qsuydouArr-1wAjumbh#R@l_ z9V;9G-sULqHb#NBJ_@|GQQ%F&;1%2fa0u>~Fmje*CusI0Xl|^{VaxMmiIV143R`%# zz(QDfF6RMz+{A;6Q^YLC=4)D%Fb`@qvJ-q6>q6eGu0#B;tW)aQlL!0}B-|VYm}6r=2|90A^ku(NDe#YGz$ktB zSvgk$ec3l$A9=cOHmXG((IDnS3Hi=t4)i=pnsY&gB^gIfz6FFT84UrzgRYWMZ!^kJ zMy<_ILK%rh7Rrd*&kSWObe=IJc}Z4f0+cl8nE+T-UzDD2Ik`Zq%2Er@U_$Ol!S`a7 zTPH+p7)C^tt`D?Fr@VaFz9{s~(@y_QAJek?r+HY<_OB9I&}OtllqjgGHod!lXR2=^ zi|veTpu;(s)@LeUOM8{py(~IwbAC*mR*kl0h)mH=InLrWTI{-2jh2Lg@G6bY)Afxs z+FGvB8m;0}q>U#wzh|MEtd*I*f;3aVT0M*U>x8D}V;smz^%EJ9UmyA$8VOq+G}D`v zX`Yu2eeF2-?xVt1yKfOF2NZHuZ{4rw-6sk<_iVW88$GzLiJ@L`(l1H^Opv?%;k7?OO76dH-*PAw%((?Y`*>KlO-G&)I-fVnu(Hi= zJ#Dc8t!qzlPw;>#-ES(xN&);zMzaL`N`@WZ3{_>vH$xeAd^40`$2UV6c6@Uuz&~Y*&@?)Y z=0@Gm5Ylle1qoNWIkhd@_sf{5p32{XD?r6v%@3|(nKIAsP=JimuC?A#jyOBb&q1eQ)lvln(2<%v3+vCv_)D?l<;0?G7~36g@xRYu+%HS)%&k=I9!yf$j&NqFQE zYZ-e8BNv2P6Hojc5YS>Rx6S^s?!)@B*OKEz^4z4pQ+XI~XXTtBo!YHOTA8F| zqigqg;Ls}J4_#XWVqDU&xt+i-eMuom*t(b$qDGXiM6zRM0*P)dO6=%;SstOs5wRw( zbs|S^zIKh?P&Um&>N;M%ma0xVp+x<}X<7ZD|JQD2|6L1d?Hbo(P_Tsrx>{HcWX@y= z>a^6@x#&81Us;7$D-yrG5%6Hay=~JKm$sT)hqHCtuD|6fB|-l*@J4hCgS_oQ&g{@= zsxW=Jh-AtO_uW1&B67qMe1XCG%)v_V<@bin>MlVoSt}gH&&5XvZ~I(A_tl%MA;~?x z&|wYjD#KbLfN-^iYISCO-BOb1dIcKE5GRDpMZ`;5j2)Kd=4&??mex8f-4s*W1WI+l z=n>0~e1@Prae-XrE2I|X4{?FIIc1guJ}z{on~P)0{wAe7M-7YJociVK7? zCZv#tGRDOPLK#TGHkmYO*qpREMZ}tTbF_*Ska2^XUhLdLVxrP3d7xW~X4%3M_dxFw zar=F}XF9Y&2cCju&zg&FqDr9;`O^^Qh_pQ^{3!rN0DnXIGRXrN++SdD z`Eg@#V;F-UC}R+m`8f!~!VfNt!9xWG4^%Mt*{2eNc1|hCu0~<7H41~xQ5bBD!eD(A z25X}*2-6K<@KAxl1CJYn&kAGkvtrf2W0Olq@3_QBx$d=Vj?jF-*Tlt^z=lT;>Q-DW2 z*WH-E3pP)gWmu^~8O_pUuYA!ckxC__ULuuBMy*6Dm5iiBDwPa7A~4*m1@r2Z(6($91En_Fe|9mOm>L0W_kg2*062(b3&nn5(jQCLqd}dxX97o0E!#7ygAv2*U~Et zQCs2mAPfmnNXlvnF*D`^`UH*=JSBHHpVG-UCvh!v$2}Zf*NJR-{~&i` zj^x5j+nEcqy$-oB(^0uFKaX{R?p?{_Hg|o~7G5uwv>Rvltjh72GMDfebYb2=8kY7R zk3kn^WJqPLr5!m1@Bap^0b1|Ej34_|{hGNj10O+X8^d<~%QfvLAy`Mb|8lI$uRK6r z700ikFvGjS+*i3LLSwB&0u~Lc#H%-KsWbk-G5>3)5-vl)%^jxKG;S=lRzEy>t+R&RX;9Iuk5{7zhiKB7LXu9v$uCsm!qD+xOnykTs(&dwa_ssGn8RcW+=m?%ut3&nV}4mGD8_AWe#V^LL-GJ0BWR6 zgY6*>Y6!Ro^#tS(a>yj}s^k(7fvmENqbb4s#Hfr}rw5gyXt{kpDauNRgf;gUL6?ws zYTErisplRJpCqY{#TY8P`&VQU07J`-*;vop8XTnIxu=1Bf#-n+1Pv~A8dhHI$HBkt z1LuyWNqR4<9)I(r8;(jYSK^%w(_3v?q55!|>PdM~0J<+Oe<*D}kO}?(}K?+{% zx>28+78C^4JuI|6AR&lxpdKvTc|vr36QGEqGF1;VCB8bGof_+wPs)LpE8@edl@77( z_U8{6^i^80W*!+17Q5Zg%TjYTt#tptPpA$|74R;tws_d;Em72hQm}yOvaHanO||N^ zdJ@;Uft(Y6O;+Qy&4aHxJU9zDHEU`R0M=3me6jinoSX;Vrhht{v0_IOVb@Tgj&$UQ zhGU&aG#=rO^7=c@B?VgQ7d1NG-T5CS?!VBl71NWfrn|Y;Ia@%h=UIH?%#h+TyIP8s zPK{61wGlS1u)s{=u-8jlY;`_BFt5!4$q zaosT@IED;Q$ZnD&;?f}^O87%W(5%XfOu~nVV6sN7m2n)fahL>NBA7E_`EeYFV)_;1 zpyxIY=9-NJa6X~qP*SBd&{4;sq=KEcfSa^VlnoOCpu00(oJu zUU5LoF@U%KzOgq?G>lV3<2jcmm(C#A^20%34Lf{*hVM8uT-9`9QCUR@Tj)%TT7$=> z(1gAilR^{9XoiI84c0V@E4K{MpQ*bwz6H#1IGIz9;g~GF2n+XZG>nb8ClLe zy+k6w4X&c=-7hTcvL(CCZB}ybNX?i3Il);5J4$!@j6vahWGR{d+{6MDW8?*pXE^toH3 zee_C8{w~T%2jsdcgOHgr(aje1n>FfHuBCj%r&aW4zu3+t*Sl5r1}*B3n6Ub~(xPs6 z#Rk@Nzrw<5PP48y9_PBsAo6vUP9s#?f~gs|oE=fL74ef#tJj%y`p+NCTUmcyzvU+- zx3bDTp_T5}CSCW3e_Wbf3B&>mY0V}3SM@Dyq6Bdtz{I{NklEsDVv1=OgdzkCNs43s zuAZ#6OQVw(F@()GPDPg&{~BvBOK|Jb=+HQ1)G{-e)mDl~K<LfnMA$6M42(IDduRxX!ADf_+KFo|T7*KPc5LUJ^NR*eY(M$NGbr}_35&cJfZ4nCo zSKgQkFLs?}g;>fWIb?`Z%ReVbYSK%Q=4d2oZ$m{2Bys3WNa9nmr2!(BPO@c? z>E~l7?O#QIteq8ByX6b$XI_7eY ziG=kVidD%Y*>8A?ejmoVnAx!`V1lz_8B29X@yFPLM$0>{;nUM&dft2Q7Zx!+9o74@ zHz!B*JnGUO);pZ?u%3g~tV2rV!-IMb+OzKWnFn|}i`GFbT7bRbOv{5STLXGx<>>-hdsy5aZ=4-DMDsMn# z<#GM&c*Z^PsOwMkVqKR#M!+Rqd`%RbO|xz4VV{~n3UhSPA_r!B_Bx~4Q8hEOQ>sQ` zbE5vV3#`}hA@C+8%eB%2>aW|5l{Elzn2X>QhlMCS)i8sK@+eYwbo3A==Bx%@C46jIw&2b)1hmKF2cL>T$G=T?{Tk+nn61=hWteEvihWRd^A`6W zJ;Xc9w!udW%`)!>U-UErmKjlXf9Tv4(D7C|XE%}dv2*YO+i;c9v6hMWjfm`^C`Wjz9aow#udrYSERWzg!Rf?D~*%nsbzh=r48H@q6}E}N}Lj2$6#+?r2F3s z$##FF&fwuMQ?Wzv$UpmzvD)y?znfq{w(5~%eUB4fSD1_t1{%P z`IAths0vBy1h1DyFR|jHy*VudbICR3;yc&7;@sqTN;JHiO@EuhVjcyNCNJgIPl{>^ zE$I{JWLZx_pWdb?o*8?TuQ}j`oi8-}2H0+Wgth$ zMym8Ye6ULwKrFpmtp|@)5s$urvpO$JgOIjoMeFI2b^7##{XJ!WmkbJf?5`V<$ffB6 z!2#5x>jYJTz^y}8^6Zz{n|^Mc+-PCL>vGncuB`J@|6A*_AaH6w`pb2Frp=0=zSjcz zP+|1Rb=s^4jxMDs25yW3)b8^D->c{3FGugulZrmQj+wfiiIK6H65?vF^n+v=jsZ!4 zsN(j;Hqq5;J}F$ETtBiva0Ml@NWr?xW_bjQffT%73X&F-_d~}fwVEQCHa)RB)BPCO zpKahv)9`WH8j90~3azj)aTcdd#^IrmF{&Hx>gwj5L$+aR#p2_B zz#_pToZ2kUaN#rdMCGsl6(@0+a!>|@G{w9jv~<(=%2PX^&I8>px{B-<+3k_`xzzHk z<9w1A!=Im~Y&~&9^aeM-b|_|3e*??rGE-BRe_CiM?R$pV-o}^J;B2S|#w@diTd4hJHnv zM`rqy5N=zy3Hdy^GyJTYY)l`-R&HbQ=R z6TEUdmkgY0Oa#n`%cOM?bl4F1s6 zELSerX0DKIW3&sJTz45p-P*Kagmx5~P_Kc(^L>L2RN$!?Q(9irSph_!=Bt*g*n>o; zYOsdYSfQ{%Hq!-GesMvCI4cmOBawi~BNpe!3=y#q5gLK4A_kpuyAVQ-3c@Jj52>1B zN2Q}`(iTSvrOaUaW&PJI0p15}+nV{Jt@M=RSaj8G(ny3(XLEynoZ%DcmJ+s$A`=dF zuKui8e|iy*d|p^XcbR3RVVhWP&h5_yaN0gH1Kb+v?QC&1(k~NiCZ8KmGQd2kX*03Z z0d1nLhygr+hq`s6=s*Sn zWl1ryJZUXCz+fW8PdGBelTq#CdRgDOnmEZ&$K8<5mVjWEtAvF;>Nx zs=bcV4;y%uQSCDDGd`SgwmvHx?45Aa8q1PR-2Lb8aJ+x=KgadgAo3)PEDCMv_3L<+ z_zWx}Vn_LYpGZ3<3S}KgI3r~8Zv_-gppNx`j%4z)^|+O-I*Mi%yOzQKB|Fl;Hz{21 z==~&p*N4mo!S}dZZzp`8-Z(#pU(@GXBmpJyQR>Kl;Y)c@&J*4 z4(4hFG`{6ttt7GTqJz0`NDr&F0z3L7E@El&iau0MrAx$Att4^4ujXt=`L}dWP3N|B znzv7G!`_m)5hUBv6J~y?I1;eJrgbv1$o4Rc=!*Cov7S;*_`+O@dK|HpI}yL+XLRKb zsiXMx*k=Cwl=}{ z-O(_Qdk{@ik-Ep9Ejzm3e1|~JD6rqUBdvTzd`-N$WOKspF8$FGMeHo=_TT=@=ij&U z@Af}rw;@K`fBN>DA6t6#`|tUTc~juYl)H9)wOMOmgU@%TR|@wo+J)Ec{9~vCxPIeZ zdamXz>K?t>(7&B9SNLpf2lL1r)^)CFL}o4_N{m14Ns6lCN=l631&}VftNliIS zkpgZ!rpW3!`cnc?(54Xe_)9hcE9Gj zfU7Z z32Lxz8~F4#*T?L_0FW>FbxFG6dhm#Yf~+x`cQq=opI)ZNb`jIhI9;pslhP>$H{moEGqT`?K9Y~tEt!KQB)&6 z-bm>CC?*RbGUlER`z-{lWUhZ4l^IKW8H-^yjAbX!)8+4c8UU|KcYl{>_rKl9sG`X` zdvPOY))QrBZ8No)HH=prX>CE!$+olk7oh3HO|HJ1Rd2t~&8l+6fsb^uzgJ@}M;b2z z^zi-+$)_Iu-Pg!J3mzcM)Kg9mKaa;7U;nTsF8X_VvxY5pRNwyY zZ-4W>zx!M7IC_b8%0Zw`^&|_FVOe>F9@@`k-ecOQG`wpOQ{c-;0sAi{9~yZH4_%=h zbF8CS66)HyB`rTP#7YI*D+U-C9x!45Jw3<4V!a8ep z?SA%72Fj43YxeB*7?S`~fDY*Z*g@APBh2A-c`*rAKRW)E3|1f1ZiMKwzWwMQedOI= zIrXvoUol_X#LvB7dg!CKec-)c`wRH>93Oe8_Nq`7kjsbx$^t~&fe%Q zVD!mg((gF5FplkT6On@o9QMfKb^VU?)1LI`>kHJLMdPWuyt#USGA+{=@yryg^MOXr#4G91qlc-S0H;lgi^v3dk-R+ zKYCj}y&eKAv@6Vi=}$iU<_A9awy*rMO|R|8cP<@X`R4oXUsIW&4qb}ZU7Bi4(Zyb6 zszEhE<-oKG&Akw6&C*#}RY5I#g6WllTRq+X5yyeR01Y8}WeDQe5Q09uw~C-(<BY7-39_XD@oQ*6A023N zCPZ-)(9}2o$m*9@(Qmp}5#N`s^(1|t>yU^K(!WTp8yTv1VmmzONG^m`c-1F908BGp zWfD@DSJgbPDoyVaHNrbZjeq&ZoEksm7?`N>Cx3M0=6$bw?7ll$AT)p9c+1y6v-I|x zepeEwuw}i>Sw9@UpvRP7Fq#k}IZKknoos;H3{wpYfXr>rbW{1}kL4u!I%We`z*hja zTxRZ17+_rouzPOJ0d`*jus{9Ar|*96-~aHhc6)%mZsqsyd+oOme&=KrV15EKQ%V5i z*BJm-<>bR0U*@1Q!;HDWVvtn4Bmzi zx4(?Ivssm=9ghC|uk%&;K(Q*n^^;%RdHcKm?jafE3lZ|CA31o}jUW2asSo%`vS;U;Z~u$^Z@3*XX_%>0 z=7<-4%JL-ng*@qwpTjwaSWIYz+cLznnHsD4_P{3$Mo>rkjR)*il<|A+RU*xwuUM+6 zV6S^s$G>Pyy`KJ=2Qf*P?~tdU`hyim`Fh>pB^yaT+nG@kiImRt{){ieQuG`Op9x8; z9ygNE!@R_vq&7>E^c!#SoGeLmBqiIcNJ_R>kd!#ipE#jEkrXT^P6RbvAq`0<(6C=d zl1crP6P7q{U{Ym{C3DtfmCGkX087cXbkh)?ye{PNG)K)IPd#2g|4EOWB)#9gYQ_D6 zAty<{<8Z5W7L*ur5@Ez4N0HmIv8~;){WBSIY*B`&&xnz=j~gTPlnd^(1iyAyzM_2H zF(GlCZ~e|qJ0CfC&%6KBah>g-f6v#y_?y4~*YEw`%9ABWDoe6c!|*S?0g2v;`G%2W zhLKzktIQiHFE^46PaX33ze)dnP>dd~pYBa9&3xPf3`?9-upRoD~!O zx}I*z^=s6rT)&pCeE=|{RimxtW@{>fY{cRapnp1C}w} zeZRMCaiq&W__U=rx+|F(3_n_FS+P2?MMf;@cSfu$oe@i3EF@zrx0o=h#T&9(DKsjV z0X`P#s}>-m3V84VysqI4S+d=lAxmFpwk-U5tWFP^sASB7c^1Yj=97+}T}>U*+jN_T zVMFt5+kCX92Ou{_-I6^E$dpW4aM*mxl}%bfGuBV*wI*ibI5%Zg%)}6;zg8xF=u0Bd zX(n97Ox*h!2$NySNDL@Nc4m)$%E`_|#~IPvM!avKHwBd*12NW_((E$&>E8PXuq72* z+hhZ!j}kHUU&Ix6O|jRRF*SGfiVGUV5-J+xAsTG35p2fP(KLue zQnIJEoIMqq7YRz=xag!b<~%qau(r)}xkDljYGXRSihB$3 zQDFOB9zSwaq6R$Tc_iuYgn*+Re2v_8x^ZR{{6w>F%G|6KQ^bM8dIpIfo;p1&7*rV+ z`kBK5t)IUyAq{{yxWtXL6*b* zMIMH?H)hV(@*~v3p~IjBi9+||cjQi*hi?P9qG1j}E;rKk&o|oHi+|6}AM(ppMg+5etrt@# zUtcSt&}v5sXF?i?_!9Ycz}ImVbaoL}}{joObTFlarZm#FQFwDbcL3l86Sk60n89RqnDwrx1)Qn&ZQYdtH>#uv^P1(3pwoy za-OB$G_<_H%pH{tF!OZIIU~xmE%wrYI!E8X@F%|IIpi0jVaD{zn7BJ!EOo&#!Q%9> zdVu{I!_>xF&&9C7QZ`1{nxZ%Lu!dPhbi+nxMh!>>(2;)6c>UUuxDCv%!mVXAaEWRw z(*Vk;rvZ1&%17a_Peqk(C|`DHu+!DW+%SOkO5K^u)O&*I3UcNYY*jfY{1Gs85=$|p}!8#|urwAJ!mpFx?K}0cQ^4(FN#`=##O>$bNiMet2 z52SObZuwarsHd~2TR%(120w_vxfTPW$K5>>B5O=@>zWYHfy21_Q?YPi1h=$G2czrK z8eZ1Dn3DCfjwt=qX{DHqB422Rk%UTh4lexMAHj_4SGO z#_78N8}Qs=y5o}qp2_b?M98L_iI|j!6CEq zHN9B61@k)Yer_lk;@9+I)8hIxdATlRMj4^C)B)J&6NZo0109IOpab`hrI$YZ|LnaB zlpa;JE?QOpqhEh_iqJrlj#B;8YDW`^$|l*$zNUJhhI>3)_dcF|ynCE+j$@p0$Jiq{ z#yxVqp8fDZtKlIJiGUh;NRU@Ra7RRqfY6{wcxiYD0TDqEP*B24QBdyp&AC?9s`{(C z|G(3D;cxb)|Eg8BYOcBFny)q2oY;%Sj{+Ei6ovpW1f#m}aq7jwklf}1bYK9aft0i# zh>ztz%vylKf+hM#j$%OkBq;#L00EQS1QBAWoZcfx$Cz+QVf7POWgLVTNI_cxybjJ# zM?LaPKMu~4+c}(((E(m`ZC-;JhhIQecp1lv1{XSATmxtKRq2*wI=q8L{lFBsF?MiF z-Y%})MLXazpB84BiElBxN-wc*_2qr%QvgyNm6KOJcG=Ia{PpIqpC_A^!Q{DD-+A`d zpKiJ3BO=A)g|uda_;Gy~q6E>sb|VQoB|_>j9gHhkjj2dn>JS|nho5z6CvIb|CFl|e zO#w+KiYa#Uda7muIzqsvbJ z(K-JnqniBH3EQsw$pu?qepx?8QOB%@&=J_95#KD=e7%uWG{f z3kg=#e~H2a559PT1)Sm8!7=0h-5kL2c{X1`0(}^eP*X%P6(k_#QN+V$%{~W7hbof3 zna&1=NF-gBLUncOoxbbJjo-QNluOV3szK5n_kZfHZ~W-;XWwJ!>xeOM7n!0g@ka2a z&FrsEGV;QWqeiffaf- zDl0r37DSdmNN04R`UjZjiQ=3!;(j8yupg1|qAqUiZ(`W6DKOW)=&XUiNMGoOr}JDt z=vq`ou-uR9mK$8=75G5$tO89Zg{HM66!<6rmXj)|Q9{O!Z)f0!9Y?6~c?R3V8zWzr z0lFuSGGr0|b zp?$d0TQKJcX$ro+ohGP7JX4Od8VNQ=!KA@$D5Y^k39Hr0Y(lxQA9I3)rNAI(`pD6N z&;NBW2r4t;Z$oVcOFURL-~V`$399#hrwYR`AWp={k)!-OG~yX+zPGP`pfNbKAlzr+ zzQglO-|}n4m@B4Wr9c;Bs`RM925U@7H)mDH=8G|9@Qx# zpx1z&;S<-4(5Oyc)KF*fhSh^8W{Z)B z%*(yZ8@301-LbPBCE>Co?^EH}I`X0h8F^8IjJ&8pMqbn)BQI)@kry?{$XgpYa*mRt zi<%Ai^Ko*Ae58S$?T?}WA^4=UH{vf{edhot=e3l+lh?@$XCvXWM<){=BTm+KBK096<;vUeD+P-m9 z4th%+wFoN`(h3`@tg1GGKS;JRj6WLg5+QDat^@3~i1)^9z>rumkR`!5g|VmSy$-hr z&OF40fgL2d=RAZW;d-fQXNgsk1eX)aifJYtmtX=xDkMslWK0#H#3QPUC9ON1X>jXK zXBynP)0qah?sTTXtvj7*aO+NI8r-_mPJ`5)MxuEwM`D~Z(C~oS_+T?75+8x;6Rb^4 z-x>4tip44QhJbWzhhWakS$!y}bfnRx#;0WNttSSA z|1qP7_}EbZI`DyZ0Qa$iAJS7i1p zZC;Wkm|B)t>?-VSRtpJc$Z*#oB^Xejp`=Vh-6`;!X{b2`elrbKr+jUuq2iRU%`^l~ z`Pxi_@071~8deWZ2pM=|;iLyrz^WN;4lyAcj^px-AadQl&0CC?p`pG-2dbnRK`p!a zTV9~UqIFkykm67{%ZaBoeKQSJ2Pv6`ii4C)L*O7K)8IQbeVvBYgKq*E6)!K8olw%# zT?ehzivnz!n{TB1LDq(HFHh_!Q}PSk%U+8aJDyx)33%8G5#2T^m@MhRvUJK>X~~pY zgxsDo9M;QlSS!O}wG4-qVjTYMVBpk6c96?VslZPwxT^=>0D6OR2LoMq74dV>j+|rm zn!c?rJcxuIzoTb_jv8M4K`tOQdGSYHa0-Q~d6Y@um6S=~m6S=~mGoXO)p_HFm&5Tq zGC>F$&KGA{t|5qmSW{f#8kQdNme$Y{91Pgxq!d%W$^BL^PIw&xufYLPnG^ZcTPB~p z_T*Dq$vT70dfANC%4V!uHe;2t84HSMj8lmr7ER^2j2wA>1+kdc#+p!zfs2;Fslbeo zv13LkFfb#;AxaK%CCx1N(Jtq2v2p~@cpVzVVmS@Y3CV585!Du^Qtu?R;^!|R4%Xm?&f{ttYcFKPoN6SnFW_cCcQC&{`Qn zt7QnS6eE<}AHy&DxX&TBHmn|uN@ecb(kUR~8+eiwYjISyG9vxU_TJ`TJ6c>SiyVE4 zI7&HNrlIDbBGXWHP?2eI?8q5PgJw5cO9? zqLX96Y4A300!s^~-smE6w2U06g|_EO{HElPWBG+#mn^@K)v&5`$;zlWC@tM4_F4Fb>dyRQA27@x_Dd+aUWVja z8Ir4INUoG2IVeUlv0qrhd-Wh{wzr9W)F9YN*ar;rhy4^GetoB5k#2ewzgeQz z;xY5GdORcSsf+!oh9|Ur7@q6~_azKf9HG4|Nk143ir2yT{d`rJhKn2OtO#H9My-Le z??nw&R!}c$s5HXjhJfjsi{9{2X}q8TW%LH31uPIhc*WW=ybD7+<1~iH9!7YKa=2pT z07C{f^pY@lPNOk^ZGMSA;JzG@1vHo6^8aK3=W2S2Web>+D&@2BKxSxgIfnpZ=8eeV9uGT1NPT z9V}gDk5to%SoWH zjmFjh%L29N6o(>JG4jYY10LFOp!{YrlqF*%D)4{k%PeW~zvXZ}JMiOoZZi=`t^$7G zbjz&@yn>718-kl=)k(o^B;X?Gk>KJ4C6Rhv3N8@H+K+-%1s7=^vQuKR+hxJcp}P>= znu5Feb{E{Xu#0mY1Q+3I1owv>f;&g-))m|*f9QhS7IwkT2=0i2yRAcTg_1kRZjXXH z)j4({gb1z)O55HcxO2oVpSNRy%})VbqMYpu?xk5*nRT*9b*?IyolX?#qPNs zf;&5Q3x!();Nn$4yy<#{*ieVL>VOd=EQ9bH>2^s9zboBJ<;EP*J*ePr?_A6w`@XaG zu1vw*nZ!J#;I6;LrH-~3F_cAuyN^=Gbcf*15xWZ%+$~#NaNA-Pg9`5c3htd9f;&4g z7fR(&!QFP73vOH3g$vVJdrx!-?i{hZkAgdu0kJZ#HVs}Kr-Ey-_3~kXaYP%4-3l!W(I|O%**ga6e-JSt=B_hI0 zO=BEg|7f$H#_@;(Z0w=uIs=$xWX)NQ<$4SQsu52K<8a9ugr4Y`4BW&1t8U%Ev7mX} zlcO9+_rgE|bB2R2!_|i8)1w^lBAN78c-yAGLh==3?9$Qc(KBgM51FGJ<|HGOpAVxA z*7S$a4X!?juHl1Nz5?DTdNaLVC-v0=2{A)&?WJ;Oy0|n|oBKPPjxK#>zV7eJZ_OR% z!t*Yhdb7#vvTi?=k~rx$2&lN!?FUMs+YgkIxc$7;8>3FXd3WOpu@(977$S~kHm6b& zn>f(Khi3;wA07!%wmLTpF8adtHsc(fX*bBtYWRp-c;P0wxiCCgliBI&xKC~lh9_y& z2<`JRx!D_@=9Z^;T5g8n7Wc_lG zKDWrt!SH^)sc`V4@KLSTq4+%UNBsIoxYhmo2Du3&yH9SE zn}gxc%*07>9wzi#riXL&VG`81GE)5N7RPwXPcyotr{e+>`IJQe%W; zTYn-v+!V3r*P_b66>kB1bdCc?yY!@1J9{LZJ|q0Gz07e#xwBvp(UaI}^BVt%Y+cEQ z!HKQMcaXyiJDkWu^vmyK$_AZmrUlyz$Yhip^7zs;p4WNojd8{Y`+g=e7Qg8E7m~1n z%8|t1@^}tZ7Hou}0+s-$2a4Q883u60Raz$#Q~}Cx4>9{~W>=+GWUK|qw>VD2p514hR`#VED(0RJmi-@7h!D2Ji zMePl>+U8I{+%nYvblC$LA35ur{!2>ZVzuvWr#t<%zI+4usia!#h&1aUF< zEfXO!d;nBWE}2ABF7rG&WbB7q&o@H?57jtDuv8xF#6dg;zJptHFC7&r(NAEg4mENm zGnHM2lH-V9%VbZpi4QHEH5&im3`i;$7A&&=j6;TQ(k7ng=K!1>e422mZjv_j5f}^* zef_H$Y%Q+i7gocB7mPt3X+kD3Y;bZ}SqBj9HU6^&sPQ3}3W_=0D2Jb{ZkjxX3t{R! zbkI5&%RVzC)?w#JW#={i(+r*eeH)NFaKFx3dHI9cZs@~|J z>P@)6`%#73@m}Na5>&kx%P`0+#LP03B}hRkb-+t9dur-6&FtwhhbKig^0ax44<_IF z!0b~3TqRR7;UKwqN{CH6C2w|~E}W7jc-T(KTbwCbiu=2NN(PCl4{M0-2tRY2skvAS)?$Vgk3H%Z+UwG`f(g|}sq+ur60%>KOtOyscI8?edb zzM^37k#o(Yzk4inbl65~Ov14{-GpOUli*e?N1@qkanTU_gtvQ{5;v&8&|9Kj;mB&%^T}xqG2nNeWNx(CI@vU{4jnPY}NpNS2Xu02MaiFo7ged@RmL7SX ziU;KJAfE2$c%<40{QZ~QtZ;MePL9W4&*)xWA-$b_F zYE$TG1X*%>40W5dxVSGHdOev9y>sVjLl4ABS2iShenSs)X1b9Z`ZbkN zK5r_g|jM~`|XH7rd1VUw2=VWSsmRYW>xkcke2++ ztsJnG|4F5=*|s8;hZb!`B4M=oY`OsEMogTOw)CmDC*v!c?_y$lUAx5e<{3LLBqr|R zx5XlumUaeWdfgsDOtNc=xiqti+;VL){#M+8Y7WBNm2{z%bBMPA@11ddcAY55QMs*& z@9RG6j&i#(8A~E&%Ez)?XsCQVt(bz9c(4p7(a6h%*lbo}!2*CBdjq$wr(m|dYS|DJ?|N0pg~UxeNT(mt=;ZhQIDh)Z;1;17d~@U z-tR*fnHrvGx;4zFIx9(7-`M~zb;OCiyr!#aD^ z5c3gkLd++7)QNnLdUcPQORJ}&9i5(Zhor~ukhCHl-L}1>B#!#FceL8up~3Q(m2H>X zJZ;q=;kRLaZ_RG|Wp?zD^43g$)tP=X`FRft18qUV^tGrWfyB(29nkEBv&)%n$ZT`F zPi226d*+$9K_rhXdLyLp=ihiK)CI;W@ZxU7 zHOa;tFYaXAGscQ7LR@`??k1!i+f|zOd?Z-K&qVV@m1Sf?U1W-7K zueFggdoLpAvm+PMpNYs`Ygpi(ehU_K{<*mGq$BuIxx;nPXzt`St>_+^$JGFzRAx0a zjaao4E9MW*1u;%fq@N>dVPhk>t(1EqPhu)xd6CFhUKshB)eMNl@um%V(m0*;t2p{+ zJAuR|&uo&@GL(iF%BT5^?OXJY?1(0sJ9|VJ0>bQ7V*p$npwUz+A7pF`Z7H+L1_qv7 z02RqEDlVy1RrX&|mZ&OKjH*;ARh2N4gn|DtM{wa)!r|BF)If6ZnP$D`4rMfS$E+}+eGC3Xu zHRVF(cB8+;FC$f>{c;mVs1geoZ|_*$;=3Hx3B-o-BIG8-Nd&-tmz+2xJKgb_?`wBV zd2nJJZcG;I*Dfc;_qN-YSxPdX%*;@J2$45>I_wLX5G}4Prjx$v9rlGZg}J^W+n4ZP z_kzk&vJ#h$)q+)AS$JKTNmBS8o85VS0)#p%vAPC_Oj3k?gOt zJiJe2V>werra}w2St(p3p6#TAMMCzBWYYFcorc*ykIaMi^M-gLcaF#1i=8^*L5F}N z2Vo9yuAqb-X_)JBqR+jP2|>2NT*qXZiTt5blzfG_dY-!qc5!^wN+#keX`##)$rz#M zPzapP5Suw-;F87S45=O)`)=55tAJNONHCjlA4D}?55v}fBB-0FrK1)lND=F=z@qev z>nZ!i^_02PdATq0m6P2uhCceK?Pf#_*3cS}*brf}Lp8EO;Jh?P6?>7~@2bFwj#da(jYo+-ZDt3`8-86(Q0K zPR3q18K=DuA)q)wj)ThN)RfPQs=1h&s`9cgs{G3(ape<7jn$wX$2F{gU=`P9=)8{l z!s+XJ(egS;1e41e@7aYxpnEMX)sL3Ng0xz)yn2h)PGVfPo+mOcO{ZMChp&30W8&O& z%B3f_LCCU#&GM$J6A%axS*Ef(z8dXhR#w0##+!5D6ZK*~QKwDn@`?I@&>#rT@C%s0 z!Y>dhmGTQ1r-p=6et|m;Wva=ep>czSzPA?bfo+2NN$cERh3a6*TeU0)7g{MiD&VPi<^{56uBt3#pvYkseT!b=O z_Fp-=uwO@!V&+4Qxv3|oxaEs=dWB1M?VfbJkcClgbgV`hig+9gQgR#c^f*ibdKhy& zK_7$SRu`=sVP5!@&Vo+Z(qzI?yQFx+f<$Dd3SotLt*k~@GZ#jqOGTy%a}}ALYl9G( zb$8MXtuq55>2BcEoJ)9Xf0AJk_9PqtTi}J6kAIPm{4MPExQ zTNo06S5R|Pzod1?<(?#N;@7n{x!jY?O}v*)VxsTb^2G6&$cy-|i7_w?0Vk55;g=*~ z35v_&ez;yPSV0u|XaP$y-d;1_{S-!Ih_yrcGGEbwY^}wIvr!T)}DOHXg-mV0;!m2k5xJBICw|nM?rf8=|t)X-E#!>BVnJk?l3u zg&|uc>j+}PFan#NWPz9DIs_kauMy{1H`n~5U*n6BAs!wH4cSjrHSvpb4HB-o*Vyc- z+iPNR6+>p^lbD^KGvI_XvWl7YFgMH|j4xyE1StF@Lnf*MMO9^a^747Q?DTcXjA_>i zAPCIRp005s0H>}Vb|g!FDR1j)lzXq(=X5nD&vAG;2(XX{45|zUkC~q+xV5bo*}gYd z!*Bl>1B;i+(qw)V#XdfX5@3?oud$y_>v=M*C`1^LoKq}YY6h;Bd87mvMH(wc&Zw3(Td1W`yINg5+xpOL5q zIMQJHB0{maUhqW&m5deN+g_yp_wGgGsr#<@xB zWpbkzZ`lq|g3XO%0YrI*#QRlu^4Ag=~`c`$R2 ztP9WuhjZjhfNNF?m7fn*SKuTWN-luOXW1Txf|7_4K|*7~-{6T#ChXC0{WTIx$Fm6Qi))6jJDh)|@x&x;L7kN#d% zEC-u4D+A3$z@aNx4JCrWU`bLuPyB~heJ=mP`>>R}IE6!g5jO2atN2R7=J?G75f)Iu zX~lQ}f@llL_~Hqha%P#g+??~p!-oa$mq)R9ut%$UK3<&&-Y-IxV+kL;DFLh!Pw4ud zAkbK2$x_0S2;#%nSk1yfNQ=P4+>=lsLeWqeS%KIBB>d+qiIQQI!U@wQ2V=&L1t5?* z!?K{FJCqLt1_YG!ijV!1Q+m4Yr}C4MXCPiULn5a_L*6*1TP5(MO1 zF_Y%dk7U7lLW`Vmv)<`#xi3{NGoyfkUWHFSGz5C!YZ%C#b4=ykdE+~2s zqgdvl;8$OSvjvipRdkH_4UWAfI5z_F`$1Jhn5vcwW!5J-#_D7MTR?^xrm@-rzgozY z?FmT}kkuCE(st^2D@g#Sa@hheFm6zJmQo7pHWO(h9g}V5y@^Y-Z8@@Qb77`!*hJE% zXsi!SB3PwYzSe7A3&;9_8H9%{Q3Ork4{bX9!BG;%!)t0{X6oj8Ky>^_{KheE2@p6g z7(|AkO7-4H0&glIfxUx(CrY5-yF}=l=PW|ERQ+DdVlqpVyd&Zg)qk=Oque@-WSz>2 zNK^)+YT{i-)uiBqB%tO16_)Z3GAOcrTE33O$x_-_1eSC2hNtRMRb?$iDHXAdtc}oQ zWG$MpEQ9eC0o@ol_jQCmFJdbdwh;`)^bI&IIS}|n$tJ)znmtAlg_v&k+TR#GG}=CM z$v;t`ycI2}hDwHCiB_VEcmqOPJxeBn^P@yRvxL{QzXV&XXHs{kpVba$5Oj`$}F&julQl;T=EYkDm zPkOQ@z0tJXpIQBD*r;V$f%Uz>RXUgFv@uaSNlKWy`Bgk^hgO21e^omT8y7_e-^Kin zP>~_~+d8yCq$BudkA+ovTKa*N7xS@!t&yQTTvDVOu9ZM<7PDe7eMNn@&`-7(cy>L=li z<0lW*0lnJ{#OW1rB&k~d?o=%=2Y`A(p3PR`|FtF#Si}M_z^JDV0o9C}2fjXzKVTK0 zPqGs5L%37<3z{fhu|oFaEnLoLc6)b`}BUtczCc%PcgUDF~3+hbaf9eo%1dA%9*3rRrp9&cjELP6UDp()| zXg-S9!vi;?CYwqb2**^)%qUpiVP@Az6c7z13f4@+;bMW2D7D!oia0h}GAuY2z4Mc- zuUL$9$-*cYphm3uME%%hWN~PhEUcE=Lu2N2WvYb7*A(qc6e4ohV<*|_XWrD~_VSm;bm1@bc$ziI{Yy3D4= zb~wwiH(IfriPzX0P4-H84OV4c`h0AAm8dt!XM1WOVOK@^Q%^ngYrO%LB;7RS6Bur? zYl?xQ%N3PrYC_P|wj-b#zu2+$4B?tPT%1>|+eA|{E^M@NkK4GgpGG&FRoMc;w92jo zI>U?SO(z~aY?qlWR4qxZ-_x>!0=DcVD5x|QWYa!^1#hm#{~eSPFMzGdqXr`gU&r5}5w9eEgvS+}QyLXLw^G5h zKDQP#!KPk1U1_}PX*S$JRP`E?0c|-y{C7?nHuT%<$h>aO9Fm4<%I^EV({g{FN# zsC6qK=8zf;JUB7X9X9c7cN|8ugFfY?8HhYR__kOmTO!Ipxk4kL25tnH1AC|I4uzJ% ztH#^BkB(L00;r&qOS#nw1a9+?gB}558{r11YWDhge9f4bh4QHQAU)Vy!K!VYg$N(T zksC!L1FV*K;^FYQV#%eFYbpMP?~I8!|LUHJwqxdz6AvNg$|XAuvmV z6p&1YKoD_BTqb+#!yUpRgscnAEQt(CW`sqDqY$tQZvJ+%s?7VXAT0CxQUdK@cF7(Z z`*w%{S#~)Lv^yI!U|^yhzA^&_mbCMJox=4lgOE2y$P494X2Y1HJ9XsvSL>;PT z)gi3%t~%Uw52i%7}kj@`4j1CDDMV@k+BjPlL4nT$ln-evNvegwxv3w0&NTIpd#d{ubk%8X&ohB;}|wj5Tb<_#S9h<#MCUI;wqk z{itTtGz|Bmi74cqm`Bhxl)SNXX-TPkba^UjA#bdfM0KgROPhug7PjDQ{#gA^VbUYJ zi%I8_)RfPc!R)?W%v!|<%8h6^$#vE#l*^(sD`tngm`yM_GiGxMf@a0+e!B*<@J^Je zY!Pzy)A;~}%`=Y7jKbzoVZ#YUxWGH)bo)DFYsZ*C#lo&Jk?K&1F_BBLG%HOV;NV@o zgU~G<@7_%Mf1>h3F{1w;el3)nhpun4DJ?)c4OnQK#01RzzV>jxK3|(0ootJ655OB* zUbgiya^RxT#jkt)LD5+A;PE%S@l6v;-u#xO%ielO+gl<=y2wU|>dahBFp02ZLbn}H zD9p0H4ryn7E$?)FIeRM|L-f{mAUdQ|h@8!Xjv-ps4n%L|sW!3Ptrn-oMf(PU>;%ZR zWMa9hUsfV~j8DJB8!NZzP-uBoHZ|3i#R^HCxUw8yd@Ii8&(wyu1KgFTkE$8?JVl+C z-3l~2FOHFiofmq`XCGs-nX`wK(b?z_2106I{_xQ7-$u47tMr% zEJ+*{c^^P1Ft}#qxf^?~rwJ|QD6Txlowf#wS$W*w#cRfO4M$XNKHDeUShfTtvLso! zvW<)JV1c#VgUrm{YfKOxKv2mHuLB6gB`=}!xt>u1Yd%LRe(@a{=^L|)x`QFodEIzJ z_VxCOG8WG>k(}_C@pk(%0=m_QYMfdmp&EJLMC$ixA2Q93oBFo0*qw3JV7V0S=^fne z!18{GSlo~XNxv7bDnFo%9Y;FmNS%4c-kdXh;#ZWoXFs&?A@V`^aXy7@2Q!fOE_R}N zjbRSj;m6Ik`Ekpv7#|}H!(`MM2)RalL2ZxP@XuDqBm&^McFAIde0f^X~J>g zbPUviZ349@2UG`$rl+GZ(jlTp@RHg5Y8}(O@oE~W^K5WQG9~CTa}@#cfgE{O3l;qZ zL4ueo?nl|>-J!)4FVdb}ZF(-6Q7){n14m}SZB3yjU`G9Av5_N+|c zbvppj!ge6qw{3`8)STB7Hluv1tE27Etd_nG(!OL{_IZf_YCFiOrLV|=YXdVwbR11I zR)BTJu#0O?JgBA74q|)DYN;L-Rn*vp-_$jB(+HLb5iF^(OZTdY-sG__3R>_C5wtif zX;)%7$>b5yuA$NzWyqnzR&vZCGWu9KX30o{ zIQBGqHx~@m0aqW#5F2ynSZ^SPjE47+RG7>a+G&4r#c$NU#K^l}k_TFC(S*EYOuku! z2P5FxF-rUAKK3^`@LKJb9xVDnTB`fZ*$3Qq7)+j7#S^;(zP1BeTHsr8ArRrlL3pBNmwv|jit<~Bq|x?!n@BsL36B=LvTN<#9%qshyV^ocqLE|XdzsDBhC z^^ed6Q|UsDkqS%wsJbJkkJ3>{Bi0@kppOOUa{)H}p?Xc%pu9W`+QtX*E-I7wV~m$T zHXtBByy!H*Np|cbk_aV#d`VORI{*`=Z!rH6(+4q)D}ObR-e1a_#C-;2yw05e$dnro z*!n9tdOWE$g&O!=b<)%n8Zs9qh5Wuz)zlP1m++$F{{wI}sYztt55{1s*!QdEA}K0l z-xuyI#fZ}P5Z0c)rxz{nVbDn(B;?XDFtZMl^R8aByo;`YIFu zRSE-HcUXXl&y&b}pqVr(M21w6fZJIOOjt^KHLEKk$`bUiNgiIqoogRSO|$3&!p>_Tq=(3HkVL*X-uw%l(iolqHL1i3~ zWMtAzrZ6nLI_74AQ8!ts-cKlf$KD<$GOD-nf(SoP=F@c1eI9!4WdO^-8 zNv~83^j}m*vwUMbSjDF{{Qe=ZqZ%!rN_@>{(d!kH(ed~_zUGRx%o~YkHa~-BP|^cG zuacjVcjp|wiBu7lNq z^--S7Vb}!EUL6+vS5)aZN1I1+YXVYgpX2bZhcPnmp3Fg&c`d+oe1@IF&6NKqnmX8e zUvCc<7OPQUA=IQi2{M2&B1rJOdT@Xle2W_Tnb5bWp^r)QiW+*E3#q7~hlv-88l?JH zYs23T`eon17b-D)g-G>{lzhnKi$9o^rAieOg0JwW7YKPxo_g`t%TK-fTc1B-g@-Ac zeDsH#FWR#C)T^#Lc7?YR*RMYR(xdm?{p=49T)}Q8&pc_%Y4?2p#y?(yW^^Q7!N5pp z6%n?WBxvi*A6C&sBuRP^=(5aDg7_jP_ys(eEKXew%K-m>!I z;l~N#zD@~uqu!Yp!rk+!*db;zW`KLI|XoQ%3aNCes6NO{{S{;hpg{ z@c_{ZMUI@wkML&||8NV`WUgjjPhUI?ycr&Ut>T1EdnCw#wwlZY-XrlMT?;H$YU}ue z;^F**)0O;#(3{9#5-g=}7G2`iCJvVh1S#I6DZJ`p`3`z$2APq-N1PpoPq^4sA9*l_ z#R*x8KRudG{_>OVu;>NSkX$IfNbfK=s=*ivo)fSTg+_pYKJZ4IPX)lM#3v>L7l7n! zo31~>Vk7IvmDLVSI;>2 zTX(*C{oR7QUi6MMDVPc15kOT|HIczM1Xw}Te~H2qB7YI_Bj6y@E5K<&aY+DLr~rK{ z1*lH}diis=8TyKEP64{=$ETh9_1|4}Po(hN_J^w<*mC!!zq}0a$y^RY3kE2d)GU=m zeQQ8<89HG)CPCM6LMQc@Ye+Kmf%lQHp_~&7@@JTTz}{*fM<>kT%9;WsjD*TYd5wHh zN@E_CCCuvK_yf=RO1weC9algTmfr_)18GxpUbw>Z@sJSj0rohu z4_$7JE_TGV_X7M7uH7jxhIqrTZ=Ukved05p!r$;*qRbn(wNW9vNYaI8nFZ21UU3gt zX*>|0A%7RdQ}P#i-cyDF8BT@~ISd2J#xid`)rv*Is$f+dmGKK@5L~(B0AFS2x`;vk znMF)bmSmsTHH_0gIydPWR!oc+F5_NZxU!5H_KEqAbQv>=C($a)7~i&|m{u0Z`Nx;Q zsW;2O2g7I20OI79LJ;314f};(`LZ@7Z#*Ck`-flnQtplIrmLsU%)Rj^({O428z=pQ zvoIWNHnH+jhTr3TP;Y0a1 zz9|g{glqHPxK$d$@K)21eB%LWXoQdDC;M^Ja52Bp0a_7qL$nSmTAyPt^MTe^1)K%p z3;6+j?ml8~AUul$P&ilX^gDtho&O_}`A5hK0qs{nzszoC15_2C%=E8f=@g+1nV|Rr z0jEFwtfBaXF0PP@$+j9RPHOk2WD|gBY3^Q ziIhqb@#cckQD`75Npiwu)e3Jk;&a}JBTNn|6DHBjvgD+NGszMto>rFJEi<)X4vOb& zas+6k99esl5Fyw4EOLaqO(Nqha(7%86zW&qnL-5mfe|8560Hz9(=Z(S`9z4Eoni2J z!wQi*4ev_cutH>0hIio&D@1NHT_tZ=A#(P5WrNDQ@P-v4kC-KuyiqJf@J3#UBySW5 zkrCx0VWRG(Yj8MWBJ(6fsPqEg2{=}WoSorz7=RTbm*j_Rg~%CsBv~QyV16R35P3R3 zbykQxZe();l@%ht&rjViWMK@3r{|~63XzxDpv<`~w9b|BJX(Kzz}o)LoR3%`^nh?k^cAlz!G zF*+wzm2rtXOahfy?gtwZ8kGe}f8+Dg zFcAJJPf6!U!%+Ce{2P}^!(jM|X-H`AJEp4#^Q-?xY3L1qOsG21z_7>eXkfRpo7vFU z#^SlhzSsrajz}e)v=0P9C^4ec;m1CwFg3pZ!A$*+v<~wY5r3;&l$jHa&b# z*$sGXn%u<5rMMpcEZuO2T0Hj%o!c}LiVmY+o`^51r|6kSUU=Z8%Rhhi6Nua3rtPVl zZ+`KzhrayVOEs>8+bG;vIni#cNQlnM`o4z-gy@`d(OnmAJnO=1j$x!l5FBgiaHC_cO=n$gaMGcbFI*2IpXNpP@R8(V1yq=5|4H5dOe8 z>k?nrkEEdzeoeP^^S-WL^>xWEx#R1??E+s{j~hT@HvFu!OkRM`Y}No0^?M?y=P-}K zB6W=*K`;;_NYZ^j$I*qjF$^7hVccc!(91Pj_{cT8k$S(QK|cscn!M_<%YJs{uQz}F zJQH7b?$vjmz4fPCZuyADmlYE4b0-M#8{+-(Pfxq;maAWQ^&b=Bz2b|1KI7LXTsF1e zUPHXs8edfl@jj|>)k=(-K?~4i1(4RH{Sh)6W9Oj-3jqt|J0}ceA17; zKYf~nz3mmOx0HG>)1BBZ^=7Gece38kr=h*m_nd##BR@a+tdkAvz47HgKK%QW@0)(p zUli+o#6$~pS+Cbt*y-*h-p5j{_wFw|a^DGG|KWH3t17*ho_75sPrNX70mIZ0vRJJ2 zKA+JWZu-N?Pd)wJQ%?GS64ra(pU>ZV(#dyT@z%XYZ@9ip>3y=RHx$K8?@r?Vccnfm zz2CX&)L;Dawo8BcPsU=q`N}_Eam}^IBj&7}cwfp8@28Ku@iQks`0`XGA>OTzU3tz4 zkAL&||8K7$-k+2a?~7gH-P4HojFj_UeCE^7UizgQ&l^?Zz5a&JocH3rm)-xsOvHP- zY8^)D{p#)8Zn^4HFQ4$Sgm}Mt-47r9=I?Geb>&_|yk9q)#jR>XSLfZ+h<9zO^WJmK z=Ba1C_W2jiG&=9*Z5N(;*Q58{1T~^mZFueZ%GQe;ZdvIsW!Yo-?DmofARQf zKf3JnAD#1W%6Wfv!nW&va>3S@U!IBcKA%w=UJE+!Q)QgDtMe8T@9y-K-IzLhuRi64 z8$W&f*Pgh>aNd*Fo%QqEfBLE8E}zL_d+m98?<=F;uBW$z;Y|{w;dEI^ZVTGq>FGn{Pew&5Lga1LsqF!7f{=tM_S*d+EA*_Z(O6!>P@->35f& zzxITCo?Wb(!xvxO_V`oB|M-QMX3`v9dp6spWe$f&yEa>q&35%}kHMQj=}HzHM0VlUq;z%?bBC{lq^c{)U&Y{q4(lz4YtH z4&G}R?>Efh^cH`^yk=t^lk>Z=4T|h? z-a_KNqZU+;4URDZy;HuEe$UOb*gzDon`aU6s|aw#f2wO@B;1<_PLZ^qaJ^1>IP<}O zG>jJ`Ukz?C5gB4Sna8SPo5thtNZw@4$x0lCn}3W~k?jh(`Ixpimpd@34hBp{S=@^3 zj8PTuA>Sxp)a0TS?H&o(a1txt{J;_qaL2bffVrcOqPw`9}W#jUGlkFoojb_>)gRdMNJU ziRJk7i!?LohG6ZAU_zUamq*f%t~+3bBiPM7eCD0fy{iW zSxBp+=me7#m@K4B0lOG!U5JUej{|zpnKW$-nPF(#*M5R0_A7V-U(lpi=x0PS@4$`Y z^TRx25-jn=ucJ3iavCH)u(z4J2ln_!@P_{`pUH;!Vx(Ud3|}q)eMYEg5@}K=r?0%@ zU1N33uU>6`abOJDO}(f_b&?Uq^8G2_q>&pqDJaTgk62~k8MYB=a5#SY0p^q(;>8G3 z+3o`c095-<4;5jU2A4J#t_Jx>BgsLcLHr8e3NN9yFy==A>v#yIvm38j0WEv+tNzDg z?|sPDD`~EMy@Qs3sdDi&=Ei4g8N5Bnhna^G$>$cw)sGD#A{zZ-R)*s%zcmd2<-!3F z^sUX`ENo_e*#OgEvu6(c!uKmSr~mS!nt^QqxSAufs>$V$mRd)=0ORMvp6+KJgb7@M zaL0L*S)=3+vZmqL1!zX1N11bwR5*PJkivzH5n^ZyG`%L$2|g`3q%iuBs~UfYNmOo9 zP%d4zBd2-7D1e_O!SD(M@q@T9Z+ynnW?XTU%k6y6#J;vad(C$qJL%F3->?ER>rZZb z;_l72J@nmeUqG7Jy@!1vI-l(8=AZ3;_Vw)x$t~qf>sDq@cG%aSE>4=Z7qG8~8}rA$ z1QSRW`PyV(y_M>*)nk%nOL=V9Z7_Mlmfv1;_1Ry(dkxbd2b1^z=JO{_UwQM(|BGpm zgURjZUjN;jufOH$|G_NC!Q^l5JmZ<`*FX2bz1|8*xPt5jK^%eIhG$)ttkxK-8Aa)F zUIq0$-aFa^dlH^hiH})B{)8LVBhePT54U9%`r)hJ!0WPXC%=8}g}3}}{i~Mj| zGoJhI4PQFxftRu3+JJ}>Lm`q>&Ey?q5WesO$gYWCyHC9VX+zzQKJda-zq$NIQ`VCPyYFLCtzK-@l}W=_pAI^1MCogdZ~Q?Af!Kkj_08;Zsgh?)y4@a!-l6K zVQ$Fho#$jwK9EMbst^Y*#Q*+>^B%o!{l@9)3h$qRr7i2%o_p(OpZd+h72f~Er895; zgiCkcKBDjhDksA`?8Fh;4>oHl$HeuA2_SOGBahy+->id$R-$Ilao`2tDRk zRuTE}wZ}5MI$x{AtN62Uj^a-yPZd3accD+Pd*CiWRRRd?fq|&OZmB}mKfVU?r^%B_ z@+Bk|FZxVPo^NT1`l$iPQewGo6>Sxz7D~2MmHA9h#fN5|WV@XPFQ}*t4=`K|7>M>J zkNG63SycalsG58g|6A}G%q^~bQAUCfh&DY8q6dLDgYf=yW${OqW!`W+L|vp3|50Q<$#tcbK2R zyi!+`yI>Y_7dosa*aoAdYJ$mM#i>wyLa7y{e4ex_UT)X|J>J} zzhdi;!Kr|^%H%8SzWd9qr+@JYaBM-^#rHh^?1ex3!upSpF;ti$Oi%(IZIai=7bivu z;Zaki5?|)r#Zutyk1+8)SQ%Ir{`8I>hUypqu*G`uc{i=00PAHFXJgAiVw1*n{8hFKs~;=A<}gjNz$2K0LaV;PS?-|s z$5TV^@>$g@^HA*ZrmI)tO}R;Wm`?18ne@y1pS<(YAAa@MKl&HdFTeNOlYV*6^;bTF zEyle_zcl9YkBjun?J}Rc%sf7GLqa|e=k&`fHYQC|l~(h3>*D#-F9j33+dQuBB=dM< zt;i%)agzR5EZU(;;Q3fJP{XPahWJDM2!B}T2}|sq-kiOnZvqQ{6Tpby>XMc~7T%aQr|mDbWI`gFtcot&D;uG>Q;G zK{<9!vnuKX0e{aR>*j&~W(;6*Ch#lN1;deN9EDcdhdVZxKC83HxU0(LjQU_Wp0G9o zf=R-kVRv@Oe^X-~Jej_Hhl9P1IRuK$YTNsE7oBszmyA> zro+YKa={|wxOhS?2KC}exoGIcujB#-5Fh)sT);@<#Zz)2h2oI9*=w+38*V=>w^^+X z7r&7Ux@=>l2=rJTino6&x5?K?(|-6li(@2#zl2C$QVCJ=!ix{YOL&9sUa~CaR_P*umVklKT=u8i~8vxwHpGl)K7(-jy+JCc1kZO z*S7e5gF&z=s!&$L-%VK!duq&+`S#dy|_pAx**S!7iD5wUPOMJEcwC4jnHl+PD*~ga0#YD4N47^LXbdXtVTp& z$jv&1D+Ypzih9gasYkf$fpWEmN)Hf*Y&SyPekcr)ooo-V3y?5Gsje*$ZVke3Q?4!o zc29wrm7A}~l#!aec&)wpLLi2^+{6R=g`m!+^xN%bj`*!qg0F+80kvQ5~(TMzaUUx<$6$&}D8tmi20 z^171R#`@f7O@U2_ZK@CCm=K$MTt^hA& zj)#J*?hN@mA@S&%nkm@I(wLnzYXYM@r@k<>Ww`RFB z!J`rm!tE(YOg^oO2A@_PqZU`z;B)cF$D`UI9<1q)A044)GCb^4`i_1X0u{vPOBcr^ z9}M(^%j7+M?bTN+AB(4gBl&Fn3NHw`(Ry0&fE79$9;%85AAT0Vz}{-a10<&ozYH4G z6A$798gfqyO^uURB_4?o;88JCh)3N#!lP0MT=1w!Xa|o1g5Z(JAmlC{e9|{am-OJ` z0h3F_Pc3*Lt78)I2L2cw0op2cgdVIi8eXEt4RjZgL$=*T z)Lld_Gbvw0eVIjcWd#B^30>S&Pb4nT35_N(E6Hvskw(ClGE&&5JdI|s=|vdR@TCfk z4pZf^4z^{KNAv<6U!Te7j@Ym?sv{IBS9L^#(Hzm>YK~|yiX$3a#SslgZ$yKuH=@C) zjcCZLjnM915fSiCZzE+2g!43nXz?(;cIUbm4;KM|2T0E*J2!3Gj1|`4v*shRnf%k$edQG ziD1vY8nLh~B#-c2Tu~D-b|-s`XnUggF=bAr>U)s5y_A^Pqo$;&$?GaHt1w?xQuI(# zsM`gPR;9){C53)WB?X^WNzs!^iXJN|dXEOd2$AC*N=zxOZroXLz4YomXd`uMBOHUu zJ$9>d4}go@ldcl^&rJp^|KW4X-~u+E;DQp!V8ZBR5j8QGQx)PeA#AwCAFgFhaA@iJ zkVDyCd?w7bN_ zM1zI3Bi?VqoA?4~22r#Qk{lDqh#?z{Wor;Wg%E_EHQ366D-IjGbluWVfgin1F}G`} zFQ_Wy(drATrbar6iOS7vzM!fa>DA7CK?uNE(}bHD{#F2qk5Qq`+v#AC6|>-UR00%7 zmw!|op~>R=S#N5{Pd8k4xe=4)hb@cG;1WylrCw(V(ssi##7oX}WH>9GqhdZm2}&HL z^;G|h>Rg3bDCsK1>ftJ^>MG>xx(X|>40ILNGy1=*LMXdjg|4F!c7*6_Ff*+FU$?8U z=VGn@}@GC>y? zTsW9;HYEUkBz+SOD~LBH6qylQ${-kMg`OA$1>%U$ zv@E2^M}bE$-gI>tg*{yfPu6l=1@m=I#YP8W_f8gLHRUUn625{ZY@L6))Mw`_2-1{L zqaETafOkDicFa_sTTpyEjv1~4^Dt(Fqs+g+$EO=swy&=uV9h@!u=0I6Bj3q092Ub4 zfyz{_tE)LXuR(m3FeceL0pG?uR~7pf@m$Wgc$M`nVmi&Jl0B4-b=O@2VuNpyTYBR5 z>djDAgnWZ^^}>xpS+jt$h6<|KaVb@7b7W1GvId|wEK!6lGyx%m;k3${T1peOHf2ps zX`;5HG|@}HLn}!@Kcd2z>US6z9`$8_d3s2tuuw)Kcz#h&!%ntlJjh(P4pj(R@P(H$ zlpz`^o=jIfkw?YO^4MAYX~JW-3MnNj{D!`i$AY{K2f;&G9*eIkk7Y}S$D&1fEL$=> z7A?wS*^=S0Xi*-^mJE+Yi}F~u40xS! zap*y~FIc+Q=R`3elvAP@ig<9k!1OapeDD)n@_5o&ZKBzMWER`i7PYLlJ&*&B%)o$A zJzX5*hX3MGVZV#>tBq@HYvO+Ht}%vADOvu-t+9Q&Ym7VTj`akNF#l_8s^)r}vXU(C zak9Ls#p?u5OuJsE>8!|F=ZGvirNrxmXEG8Co*NZdY;Xk@8jMYV23KC8!I%VSaK#lG zbS1GXS6ZP#g%ule!s<*4E65iSR<73x&stGWp9q6DfiZG>^48m}3 zYE2UXUjQZwUr2PwbnA^>OgOyXm>#&Ba`{hZeV+ZU5kJ*K1aGz;G=BJ{z8D#xY=GHT zK{6i0xQrL2eMM^0qw56ES7EvjVe?Lmh18YE&-D)alRoz+8NS8X9t~f@chfHd?fVM1 zf;RvUAc*Zd7MMt8YMSvD@HB3&qq=JtlHEc!lJX_piJS;tX_+9vvdr6B z(eMc$nm3|!Kz9?tJ$OfcY-@QZtIclew|34Aen30Ngr-hsV##3jzDtbWcR?RJ95CXb zbZYS)z9#$$H{a1W{J5ENanCUQc@B9RArDP> zSdc_;cooDcft2_1kf(pe3Qu;H(ohayJR2-Z4#H4TFg%IB2mh5=M&3vx8R0lEZiIM| zu)YYV>%uI1N#ZMh&>I9PcbV6~cN40i5r_0=_{NG>$E<9}&mrdhs~yF>8?J_!_mr!_ zYX*#L5Yu+Hn0Lvo;P5p!=G{QTS=r!*DHg@v?+_fI@$#7WT?s{T%=@zv7;R$SpOXs{ z^ZvYCn3(q$PG?wa%=_=8hr*cm>0KK0{(Aw$ z#Js;G7bfQY4{~8*-v1~UCg%NRxiB&BugC@VU?4ifKgorOdH=Iqw8Xr>Dz{C{`_xw; z;u}zZvN7+UlG~yviq>?B#jzXnP9LL*dB=(v$26RP~Dlcl)X1VCWug9ia&@+pTHk% zOpfD^2~_Vt47qy{ldgg4oK{S-2~=;C1ggWuir&&q1WzWZ)nU9#1J!%EIoX>As!I-` z&H~l%t@<^)KTr^;E;M85apwlASDV;r$NI+3UWUHSE~V^HrZMWmz(_OQ7c z8)k`7PYBBrR~idV%ZS@fVtj3a2O{eU-@zF5w#f`%1`kW9}R=Rj4nsgrx@zOF^g^2KaADhlo|tzIdQ5ADWI( z0|sF8jZZpn;FveRj-A#dJf&*GQ;NgW#X-exj&Zs{UK;JDoe*_#i>V^lL~t^dI%;tY z)_2h$(fJya<7qUu#KTnRp#(ZPdgg^ny8saEg27}3F)@tgw~=Y$%998mc&;=eTh*ow z;Pv>t9lX$yFK}z1A)(d~ry?2>5KJ^J(iZ`8v0^kN9Sec6422=--PKcaz@xi*x~oSH zbYxdgHWvLG6|uLSeSv~_^qjqIb_P>>J1Vlb&8Zo2&Pf~#_M|e3VjTyq_PS7X2(L60 z-Lb0E)Bm%Cq8l@M2SU+boFx?fdv+r&Sf&4{>OAZQCV`W$b9NdrI|xdWm`{q>H2xLb zo54!7EO{WxV|N+>TNH4fgY}nmjrFI% z6l&glI?=qP2Wp$-N0ymr8U_a8%V}c7b-N;EZwx=jIrKS%pC`VDof3X-(nIWu@belN z3dEBQKX;C`?190L8h&1Qu4N~OpC`EnY+#H*Z zk}Y&D;pPZ4mvD2;(rYu^{O-L!+=pajTH>XFScXGxSfwUgR183 z;DM4>=LYv-HTf5$XqsGemPqqNu9M&8BFzmS>_(c?h~5B$S0cE8T8-ec=V!W+=CnO` z3>zTb9f~wxD^bhcNOSBXg*z5$ew<*^M4BHj7rQso{2|7bCEDR`iYr6-ICHam%sRtZ zYow4G#vg3j@sQjOMV0N)X+N>htwFYTp7z^CLzqSV>XrlPmIJ{e$Nm;fHaRFZb8(bX zfz@U?kP}^j)h!2t^GtIs2l820V4YMfuy$!VkVl!Pdq#oPc3vSj8rq!ubfTeW&C@MX zi*ZgyY9U{zBeg*24Az`mEc6aZElC)^cT25ZG=y2C*8N9F<(V1uBVu{i|C3S@LyJAE zgler`Sl$Xb$$br*u>pw4LWv4+LKgVhK*5t~kJ;!LZGxDYn1oETxO(KM{PK?+WlS?; zSonxWN+UVm-_Q`=RQc$bhqK~{nhCF__Yf8|Eop{QZAB0bPMtRX1_v;A5)6m83&Y_% z4~BQO3&Xoo7?ODP$iu18W^MA_Ed0vY9ute-Sb;QIQ4Qr+J=;=|xFHWMav$O8|1kJh z@{S3)ZyW|lWO8M~Z5bopYkzLUITet07z0vjv$K=9*L}y&D-$=LdayXyu*^b9!!X^URE^TZf_#)QRLS|H-ULXLB4I@2+7Sz;bIvnU76Wo=3>9636MU{2%+Tr-AgLfvJ546#K* zIXIy!RD$j*NTO=qMIftO2ut7rjCw>k^__%&5Cq`Dc_(2b{2ow)FOrY^RT0pJ2?@|i zCmCLp?Ic0}-Zb(YQKa->iG-dnyIS7n5Q{n7k|UM?Y_{=+9I=r1;$})L2ZLB@yg9CT z2PZ&P>>kViw*?@^FM-|v^ZP*JWEH7w2rVt)0F3gCgoF%bjYd7LY^d;pnXeI4T5pGE zAo`Tt1tUQut$>A`4P6Lq?S1sX(mc_+25Tdd)5PnbGD;G+< zLik9pMA~QPhEEZP7&=0}<9EwShxSJ-RU1tOA0h)iVV1wOv)*uqn(22gGvy6P%ENeXA%ASLPS5DN3?KtMfAv? zg=k4aQ;O)39YM74bGtSYCQU3P#4M}Gh%=Nvm8o{b*{Cc&<=LnSYNVe=97CKfV~I|Q z$Idd8c}Bn1R_%bL*nv=AZI`pm`#g}ZP*Re88H}02vWc!CI=C?0S#=FmK+R9ih%-6J z50jsqr48hX=}wL@V^rTs*#7)Z4s!71CucuramN<*(39z$0w9~9Ba0pSFKUNQr1sZ* z!|{}fO?n5QLVo%VR8V(GP%EoV_MSM_%dYWgX-ey|!FJS&x>;(oRLkuS1$MFrbplT*Pz!Y~KSSlXexT6JMZEeI2P zvk|qROXWMXtY8u~>xc2@Q{bA@_}z$*u=F$cPN9?}D%s*<8!zy;cTM~-e};c#b_gix zdAyn=7ztjH0itEh2CuM8GgvZsMLpD(Hw<2paw+qM!7KFgmNyJuJ>s=u@roY?uijBH zD_USkDONu;_`1JLO!T*6VsRG}veG^@I69x0*z38DuvsI+<o=xYXcI z0H`_7v;FLG%2Ho%Ab*I(xki^>i!P%YE@aQ7@rY^do{~GU`G&= zc$o4k+$kk$!R?mdJ!APL1XdMvF2Ztf^kc+$6Ap{-q-$P=eNf)jTD zogMRw8tC~o#|(m1_Md1H@&ApfikUkNyX(wMhJu!24uhcLrWOM!$6#ppqg%Ii3vMQ!qK{+CB}JW z;=%Te7@pJ~R&|g?y1StzJ0VzV-a{JFU@6)p9Yim5LrXONwTR&75aKhx(F@(sl0A5G zx}hbB>vInYEh*a**p;CrWiWI@OKj}X!E}?+dzB4qDm-VA_lGgA$p)QdJ@4$j8(M-8 z68Mz4E|Y^P-Ov&fveOMMDGajdhL+H4A0gbR02AHN5;veNv%TSNbCa9%$dTF4%7^%O zc$T6YT4Dl-x$*C8^K?T?^3j0Z&=TFhq|M(AE#baxOO)v@jQ7p3$JCY94J~1;)6NYG z?uM4QayktyNlr?4BTHZv?LuCleA#M5Q8%)Lu}-grXx90PEO}%+Ezukv)eJP?Bqf_p zf3=lt1am-rlK<P)xfm>)j37EwxaSB^#EtTlqAnJ))7`2YgWkR*ru3P?`PA2_ng zTdcC!i$)$sX)x;bbXHquP%4v?*z6-H*cDzQ*+-bE0w*ugX0wkh9-zab1EBmJ0BTX2 zK#g_^6tgzY6;lVc3DhD4;4xu`Y_|8V8LPF4w`Bf+WSLf}iHni$-K$~IJMg5H_ex-Goc0Dmk|)YQhg83b1_-XN5`s2Y|=_XRUskG1uJL)RW0+@ zA+1IRMvn@i55#4NT%!7LPv~0k;vwq*q2-5ekl^P7IvgxYBbC#@ybd-J8d&CSsLYuN zB7v4^fn=~;(!+LbLuV+T8m{gANwMZcC-HTv5DeBfv!0-Bt2xnmK)cI`$s<74mOxpM z*sLa=F9+vA{jGGU<$Nno>N?5-O4jirr8$4hINl5~RgQ|h4+uSBn8i$!o}}>G3>0g}2#GE8*3TOo%pqUpzyd=)Syo#*l2nDTLtq(4i=693Gsup| zs1Y#^qj1e&K=pa!>q9#VyeTv%2L4RI!$C?}z0BKKPnj1mFq7t$C!+#B-LQNb4xgF% z^dL~&4xb)smru7&Y31?AUbfhIV2%$M@)hgmsEpc$}5QeP~GS`RB%!YZLnfA3~ zl3+VC)0q3XwQLadMF?m!GrND>{cVnWKy+P7${pmDEC^G=E8XSEqoi};@{y=2jvA#J zwB-sdDt4nUD~>u~nfp2{Q;aEq>?RJ0z3{?op?2UCK=L#hXJ$|xNIo&Ka0XK96=9&P9n@HD_`^kfSdmcO0v-mZcadb6ro1^aHI5ThT`)ZAi+C zI+*%Vd!1B%ErJq;*>ahni%MylB;9{cj17(E1No2f)we6gG%ZycaRpe-!YxE#n zpFQqol+&vEj5HxkI)?Jsxu)=v@#*N%IdL?Fkk4YA4bP_J;HgA~AR|^sQ)`;rN^VU_ zViQ)7$v6fi_lQ)m7P7|}s!?r?ROJ9hD)Az?6D(@Vhh+`{=CBeZtFnVP1vTJ;;eFpF zbI(ync}E7b;_J~_VsMn;)*DNQa8!)UsARI3{DQgVne${6k#|^*z#i@TFquKQ>%;8& zFk779;1XRQCRi4jruzJ|4%@B|)2OyC*Ol|-cDqGn4^oMUr#9;z5pA5(`!VDYP&vsQ z0_ENSE3(ih1pZN7FDAsghXQ7;nxFbdyIxFV?R34E^b5eTLtQtwGUKinvm+knxJj55 z$?PO|y_f|X@GYd)^Zm?(?!qkNpPJ0GxJ-^jxpV+a)qRbfo}6W&jiabtxz+11ZhXn z{$BXff+dv^7I5Kh7ULLWZV=dN8-D)~{ICIQc?EI(FeY=3Uwr9qCU6e%^P%KdbzC4*Np3(_qqH5quDD1cwEy@n_pP_prYs@U!PI zf)GEccMjKQR^rbyymQ4Q;oUT}c15rp_wdeA{Q2YANz>LUn#Q#$!grWwj7QMn`1grF4gemizD17rV-8h?hyDC3-sP;(59sP1Y03Yma;Exx720aV8$Q8mX^-4D9h!AP(<&($TD^?qhPq0@~ zZumrd1;4ZxgF^H@c-|d+fprk*|D6DB>ijGdNEJ}jBluW61>&O>^9nDBD|Ewoz`Bb+ zZTm(p(X?-p`oo^xPxxct`*uGetw4-N5GXoqC#LmpvO@W;2|0sqPQ$#NTZDGBu*he1UETPl;|OT8?`&6O+2Pu4MzPbx)MCotYI!1@4t zCOou9d6GDSzZ<2UkRGPAu@nau&!vbzy=2ys*GZ$^vUC z3xxM;H?Y8pVS(5+dvCKUERfc$Wq~!r0;`4vRuUFi&#*v{7&c@g)FUlmfe=~!n4=0= zAb2_FtCnMdm@*$bcMb~#K%W@%m756*M9l=UK=z|7ki94itdRx!85W3a#$;!FT3H~U zRu))GSzyhw!0OTRzOX=HzCIUR&+cJ?1X@`jfmRj>1d&-s0;t0R{e%T_!O2p07C*Cf zma)KXb-!X+V9}Opuqyo*K~Q_jsQzEb3If=Vw4(iKJy0*%5fsO42YbB?&2K-L#5nU> zL+4SRP2I=6JKuXO+;c}_P9?}*3_1V}as(e&Z*4BFqysc^d$duX^DHo8yiuF;>-6mB zV>LPep0P*yt@aLHXAm*6uz^d1_^=4LHPFH9^quFoqdRz=fxVevg(nx_JWRTHX8J`~ ztIa?KT0os%lo%t>Yy#dY1zJsYdM;?_{hkD_QZv902*d?obwQ$IauYnOW1NR`mjQTfaIm59lT{1+X8eR-3d36LMKS`g!&FO#5c$MdK$ROT{R4x8=l~*u348*G z2#ZOMK}*caC;}@c8hkO}m?=~Oh>7$K24gFcu_x?b4h|8_=${5v|!Mz+e#I(5PQwSy7|L01Oy{L@2c&)q#u|DCS?QXvee3=Y8hm z1}%PI5Hf?<38W*t?&?OdfhFjtYLL7ntJIgLKbd@1i;;jCIF_I^))=a*JNvISWE|Ji%@Xv?pv&UgQQd+$@{ zu}@_uDWFISvd>8Yr$`m4U?o+OXzEv;K#(Zu9*l19l{=a-{NpkT#~m%#VRMHJQb+-X zJPa>QBxr?)36eCW@`#FBwxU1>iGq^GsD;vY6qFKCLPN{_eCJ$i{nl?k&ZFv7QArLV z+2{9KkGbZW@42RLKb^m&6@#ysWNjQO+x^-0%Oq@w5&MGTuNzL^{l8BE33Sc1$iy6JKOQW(8htbAq~=(}ma z65}$v!LZdJnotBcZ+Tkng_a>=Wo32Dvz7_iGc;T8kTU+J>Aa znZ{&`4LNN?PK#FP4LL2bx5t9?yCJ8!=3gMpw5#>fDbBQ=>t+{p31SV1m$vZ;b7|JMIgT*SCACZ`3!pKfLX~vj%rzT6SL#N@aj@5N) zV%s`&Y6oF7BaUrW$kpuR=ImW=4hctJXoE44vX%Rr=mGA_(CF?aL;p7e^JIUiP8HSXQv2Da!plT!40#zGzEl^41v_RiQ>>JA`a;_Zp z49B{&8lu?dHu`SBeC~Cfc8MP{DR2}0kZz>S3_z|xYSrZoF)gw!6K%&#w9-A2Gu8C6 za^Rda=05I8woQKwud02hC^Zv*uG47Q8!|HdtH3%kBac3 zZUft4R5HJI*A3h67H8p#lXmZ`yX~ob_uh}4 zv2ZB`8~xJ3>Xy&`@gWW+t=?+C=T(R7x9C4e)J|(q9Dqy?_<_6-@n*qthX}RnS2~ME z!FLyF<*R`rQNDGO>+?lF@ne`*vXmuqE903H87QlFsc~7_iVE}N4Fjm5qVq%)2Qb1L z{l;}XmI+c8xBhE%mIHrJ<9gv|+rdTbts$&QuZ!}vc|qZKn9_B87ycs5heQPyJIb94 zc+@cYar8Z#TZ73a!L9zm{s({2df>~&^1!Dadg!*d{OY?u{JNXfYN_e(ZahFMiUhUA5#aXhZC%Lw#g0~gZ>!)9#fw!>IJl$L+Dn5)b$>L6 zo;O!bSA+h&w(fJ)(ZBnHL#^uk>TO@*xBt#p3LEA&&~R;N_=msy?pr_b7Z3i~|1jiU z84ZuuX!y(De*XtPaqs{7&A-S4e+2##SV*_C(R+vV_VbI)3DnY(%FlQufOI<_U?UCJ2#BnGgwYh;&xP z@2t%fDNED4n@z8&LBiWM9oTD4#BJ^3VM>Mug53(5SF~T_gZsL)3Xp#%V?jf z*3I$u={p#qgR_r@IAgK&;%hWpy*`31bfG!HTlIO~(^C=*NALMyw)?d2v}s@J7kAmkqF=nv zE*AXam+WHT7w@-=OZ?()yLhr+++!CM?Q2zUOC4|1wBc<(fnlSpzNz}~FZXeN{Hw?& zgMy21Ayje^m1K-N<@emt9v};~s@vk1d^XL>bEa*h`6qaLAF%cwuV?RwU+5IioT`*-p(QkQ zd)`n!B~If!op#@u+O=anYbr<OJWx$tq!N4cUNh>G1G4xz2yn}3zJ zN!*=g`ztnE<%3q|d6@gciV$^#c4whM*LmYnH+J=;sRR*%q9ij4(P zdW6=uiyvK-4X`3GN($<;G2x1>QY}c4r~WZ^Etzww_s6l)i}X7W>ZozA8`*Kerya9= zSkM0vdgsYK3;c!554%EMXTNWPwdk*z!6yC8(g}#UNkrb|d7bYyn2}^}lK!;)HJIh6 zx?7`3v0Sh!vnqk~VPnXQ>@vm|;wqqU)x2gDAA_FJsvu5vBl)7p_6C4IVgNSNTbjLk zJ5(HW9d_=$oo;b+i5a$dMK@X{GP#a-cT4&SWY880>!<~X>}c=9#%+c?-uOB88{~1R zd~tQTR4Pq-#3nU0t-cAiGJVMqV6ZY2qW6je$ifz?k>e`(@@Mv>jZg8 zb_wVGHcoxf7qK>Ru`6+LO31}+66#F*Bh(j7jw87SJZ>${xE;BgS(vpc&PaAFixyy< zzMjcQVRW?Y4rT&c@=gKE4I+&R9U9a0;%xPwIp|BlR9yBJ*kr8%$6xH{r+1Ypk+Y^m zYCQX0X0T}=&!=tp6k(MF2?M9zOW;fiVkZjP-?X>Ao1f0!_7Xqsz3qXAV5Y@qxP0Ef z9~L4r3&@%tdA35jY@*56%3>;_$L=Kc)0!nzedbq;dX%gYa#k%6XvHM)S=Lq*h9z1k z(W*W0&-GIOgKrAhvjvF_qz)O7OC=S*)acf9@a^K1)^n5AbBYakvu)Wa^6*&3O~Da?#eR- zdEZA7?nGOz1b2360=iZO5!^OI2TEEBrrY=dm}IWXpdteoLg#tH42=7p#tP=tGACB1 zpZb*Hn2=#mV~93&Igo8F$l``@i9U|tp1mKE{6do5gvEC%owfrb+j6k~>2dp}xsAk) zYK$nrh$3J_A&gLNK#mb0+%QHoP~gpFi6=B_-1XMen$y!*h1i*xNMMSC+(!uAmBY^llyR>Y<+76aQXf@uX&5OeBt3nqM0 zkEUeVW6F}3%~_P-JG8CF5Tmp!?wev)1bw&Y2V{zDd&{R9rFQYQZBkB+5*VPqx-9qd|g=4FZO}N%7`F z7UIo`_27?@Tw=wWZ?dhR$X)k?j~Yje%{8;shv5*?Ixv+02Me;B5**-sd`Hh?1v213 z#Qp?0Oq~K8thF2tQ$hmEV^|puQ)A&!xJX%O$K`McyCQ=_XBQ^-Q8=_SI1~vEA-l(N zVw5^C84hj1fh2Orha%yFGFv2IDhisOl@Cs?j%NXkz(I0ughLVWp-A|U@_vL5&O99- zjEQNxk!FE6NCY>eg)fL?$#rm|nA_M*wi1@Tv9X(Uo`EveB%2IVm5trxS=QNZvV8k| zH~n&1c4`B;oQ0(;TB0>;;?|~G?Gw{YqSQW;o1!)I8spaR)f-{jh_2W1gXpTWJC=sD zBn#Ky(cW!r91S9|_>dzYi`FK-Ls&|WcC@F1wW}{{m!z!gGAZl6R`ej6@k=Zo)x&6w zSi4C?GcMTSUJGIqRIF9$t^}Oq{hIr&%pYFMH@vb<0nb-&L5d5}P^HT6NRH=J< zh2J3U*i6GiY+w0 zRlU&#Aqhp2gajs5Ol?T7aA+k#sI-|*6Gzs2j^--AEdB=lv1QS>-~?5}*j!<%1~2!n zw{*2(ZG)u|pcV>4$QG(9J<0aoCZoLFZnaq@gJkEWGFgCqCi2?ar7<=n)Yo+D!@-Z0 z3E^qwNZD9H>yeQiDdRGpEW$eSX195CEL&xKqXH|DQCneb4D?tTmF2g0>pF_Ed_VEyuC+v5fgJ}essk3Aq_ zK$tLnzVd`8Giu6Y;6{!j;CwK0DCV(}SyV*9%%TK^U=}S97cq+pWJ~2WVk1lCz6Bkk z;_X##Bn|XS^vOu6K_Zbb+kM<}Gn`SepN_Z$mJty&;0GTa5fqXy(Z98EwhU>_<$llH zotl6jZQ)1T@B^J$d7NW#BePKjY@E)Ju`jIA9I+e;6gW#MVh9nN z)DaD-J&`(MWOKehw?Q7yUGjKKMCl>49ioRrmu%oiAbH%t!*dr8-~1TD!#g^;hIFD9 z7{&XchwlY=3BiF!1|F@P^a}y-M3Urws(~W6)KO-{%mBdT zv37y9HN2%lS)(lXRn}OH4XLh>J6t zJdCx5j^i9m_CO9M)Cb2G`G&ZXr>OclK`D!wG~^3%_0e{@>E=#!jAfQKUb2wx=&Z6m z#Q?7h#&JJecd5J~WpFNLAp%R~jVVMxHkuG1ke}~scC=xx(@oZ)Yoe1=mN^zxmN}dc z%Ub4i&R(i{xdnR@SnLCYpnk)By)1KlRi3K&t1nnHD=_Xtx0aPru$F^k$8?S zMw)OQp*dQ$tvGKrng+K3mguB6A8S?UhT$Lk&E=sjDyuY_p{f}+n2osj+`6J zO7SKdrNiGAIx!!t3iB|Z#m(jz?M}5zOQ1{?+mErWFNx{eEI(zJ_JA`{GW_9io*K-D zbFt>-QJA-p@v5CMHY<;qx}FUlF}>{`vH98~HXl7=n_p@k3I9eO(s?abj?4gVvp)c> z(d`wZFdG&?ZF?XYbCZj0VC^OUt*j1l0f>(?`IG;Im?1rlpep>~tb?jX;lXSTv{qpU zkJ)JK{4+*_C5u)Z9SX+fqv4}Cnj-fmXD1&?@iYJ<9}2)qhnWfhRzrTG>Z|~q&R?~I z$M84%VNO%&kN{wAj;`4nz_S^E^}T;1IGU99u59OHs2;H8=iT4~g)jo(j0=;#7(Jw} z#}A}V25yDQ@MBTj%pzMXH$%+~)2DF8+osX`B|=aj`oBJujWv=qJf4ndEWrhCB^h<@ zTwFdouXu6O<~deQ|10?ybh4;GCmb;XlpyVcGI3z@ zL?DhzXSLb~b|sixXB-Z|PVSR4+N5QhT*Kg3m8{h4CNU&tT0iZWCAgLs3oNS+%b!4k`d58b%eva4J=)tAYJ z3P!o-1j2UBRjnB?ijxz{rPj4q0rDhmGU%-?^_pmEzzK4FkX|!sb@z}oOCFnB%W04K zB>Zg>8|IW4?~r9ku*@)B)ciy;1paNi_LDRtEG3{1=`{Z-h!d=#3*o#|3*OohQKiv? zG$(stGuQ1T$lGn!zmzT@9EhQqGy|si?M$VK&Ii2>UWK=X5jVi|%b=vMtkT%tGJ((} zn1n^L-$qBK>NlAb$kt#XeYQ61=DOL8(=D4Lx6%|X9yiQ0y=8Obtu(ce-_5NwtyXns zzU&^S2~sQB5309sXo;6mTI!(Mjio+Em-?=arS{F9(BG^!kH%g7zKx}RtSt2}t@~1c zfpe&^f253v+5(apJxo(rnF)@!>%qX1N-yJy$y-aN)xovWBTHnkXImG7X>V+|E;|N; zVo*@3nFai%aBHb2A)8@Fx{)l9u8njW+6YE~U~9<8_gpiZK^a7Yp1Xg8Ho(~g(gsHD zebooFFca)IuepfC6V)MU*Jl77t-S$^1X*&R@t^sB1_j*>hEA0koMQ6uZY3O9-tfaF z*L_%t!DFS|2_x$vS(x{H=*P*#_L0+MUZy#BI95;;E35J~80T?(Yj9j!q+ zQ=qJ#7IKi}^hW}%cANSpAAQS{j2q)P)1yFyi#;REX$+Q-e747+BSAca*~So(mw(Oj zp+fTVuiHgPUj7ZcxJ=kx^gn7BA$j>X?Lx`RJb7(Q2gPvj(OG^Nu!#yz(Cd~c zR~v4bkSyFXDOp$q?${I41@y#pfkm^q`V$kG^~7Z6Ma;1A8wOlfdSbG}B91FPxtuIG z<+_#CUi3@<>sr)d|LYIf0U#}pr98Y$9T_6?_-TNvM&ubaKCre?S^0pY2f{7aV(r!w z!!1|6?bbrL#T4U*OQBCRL_ynczhf7Re(_)J0t1t0(diD+szzds4Qw z7xJ+`Zmn28wh9D#DmGZnf(Jr<76|0F&~sQ0OWQu%V|bFrV0qpK9!v4|G5i&&sezun ztg;;Mb!Szq(v#J{<%C=RmJaUy|F^n-T)UPKK9*`_^lXS~W%O)_Y6W@*)e5uu<~xs0SRhQJ!o zE_d^!2<|{bvb=U1Qb=k4gl(9R(*8-iu#|Qm>;~@vZN~DRO9f3!zc*-F=KXfvv!r{6 z-k-&M?_I5zdDguxbzl}T_5LERpC&dZd9l8UoE3QA=R%JDMJ(b|LKlIw5O^zI_TOyX zLUR6nb`g^EKV=t~dG*>K+C@mt|Fm6rO{@NIDM|wgg?Q5#KZ=xB(BWn3P!R_%?BOs{ zNX}x16VFUQ*iGtH{F^9@neexM2Ic+%Vy*c8AeD5KRL~CME&RSCV_qxB1JmgObe>5U zJ2eFJR2itT-nXhEpAmWuz>wpEzVA0knr&DE)S!sA z2`-JVwcFBx(vg5o)9`LFroidS{lE(yVodV=Z5-VJ;FivK@_k~u;~f6>P|Ih@_r{M^ zfe1bBMYhf-TA7N4cIx3S)bM;!&`u}33y$!P>BhCx>@xFIQ#&<0rsMsV03V`U9%w}q zc8GDoMV(B<0GN$c-%xJqU|`V*QflEb7R2(bR*$RT+wy$6id2q}#i~`Mnd8mOdPBy> zs@E3cznhd#4^d89Mrq3(i-+KO+44N;97-U-YutaA_N2hDokwWeA!nWi(1{Vs3&4!6 z+-gfW*qSBTZ_i@R)xb`V5?@jtgqCYNJ!@lb&(=$8u-!r*hSwnK9CA)?8W6hitd>BB zE+o(~27wOm;50w(R;h@|lZd7iaJR1uR^@&V7PnOTG06nO!Qvx{)9!wWTP)=Zf3-a! zi{2&@G&*fA1^_UoU9an%O?VGO8{h|MgAJx6YGh+m=?APcaAci@o~*hS@Iuo)E=2WE zacGvYRy@dJ&-9M%HR6CuJId`GO$i+{{gBUU_gh4w?3Ui&>JcGh7dccV44i>+fPz^9 zy=@OsNMjsWs@AglAk;WVaa!}Ym3aVDGaUr@>M4|h5J@pp6T?O!yB9nqf-^ho^rsImO?ybimP6&d+73oXv>5Yc!Fs4H2d2$dWcsD)H=Gk`}cGzBkU8K`Er42{}X|YK?xzk1y+W}R6*5Yy^*$2`wHYe}lxxlEp? zj-+wCoRG=Hyc!vG&7E0?@_k7W*+mStJXxnTGqrtD2=@koeU0Vit}QQj zo6Eb;)8yDu`@-__N@IEb&?&?4YRk-w-nKC=UUKiyG1z; z^I+kRkbMH$5p@+_Xri4yB5NUVslV&gfig|bZTz@FMb?tYnNyL0_-JO(cd$g0el7Z` z$6VANjELGuO#5gFF1N>~&VTk~qV`}&)CStZuI*9O9?-Lh7}$}p+>$wA99ktZIxD#5 z#r)aG+mw`MXqM%jo7Cp9E{0>{q%ygM3cfuLgsRboL0IzSdWhZ*%4UjYN?>0@wy>pW zwns1wiBbG*0*19)c>+7Cc1RU&61L+B*ZyIHu&tS}fvSm72UX#;Xj}g=MB6qP>35is zp8ps^whuS*=#Dk==n#cIP)Jw{{O1GMmJ+s^m4}Ncz`(mq(2*d4;!Rw%1admvTmG1j<3I6(clt&Am^@}ll`m#YG!nHC zt`In4LgnEiN~^a51`}6#*QwkhGecaf^u&ZNJu#UzILFodVNPP(+rCwd6@ajzqre{!h2Dslo)2S2hPY}aIwDnaec4 z%Ar+0Xbnm|N`Ralra&PXlsQFO?i^AY9sGEl0@Yxl(+eV7Ffk5z+sR)Hafu(YI|uxb z-6``k*_~#7Za8y-Wp{z~vb~zLs`s{wnV9+6)ZpO)nW0&9w=^U&!)9AWQ53AK?{ARv(LCc`&t zAXy;HM317=XrTaDtga0B*hd9H;F%@O;yYBbH$sKrIqP1r0LVp0d^3?JclLmzuG<_s zK725en2k$9^oz!Uw=-U@+s4ZW!>k;ejf{8(_#}}|vu$zb z8v^u<$^gtmTtZvTvh5C z{qt!JFOfUP9o^25huelbx}719C3S^HGUTzuu5i042P(yd2Oz@@Ktwp87Lybx>F)+p zc!tp{3b*oVbqthkGS%3;A-aGrk#6D&Bi-0kT+FjYH$>pAG^v0G+)5J)w!G{Wn{@qL z9zVI!Syou2#The#r?HYXi=^j$aY@mRA|%-;A_yF-wMg|G5uq)h!l5Sl3$vyk_tiKTK z52ZNV<;LIgZt`Hex|?yY(%i1r<%+dq2uaFnaR5hF)P_19(isqcB;aD|kczNesNCg( zW`ids4er=QWw$=ZC(8g6yw3bTIxvDWRwOO!Bo>bPfW>zB+tTdPX%UvmzD@~Y_ntyR z80Q1me&(0S*!Xc)N;W`g8i;qno@0`8G{CHo5EjNEj=0M7lT#W6f(SlGOGOI`OO_CJ z_Qo(iA?%MWG&dxKea0?ALfB{RA|!T z$uOD6vO3h5Y>_lr6KOn}4o}%KxfJ@Glo9sdZ9Og(O)L7Jw~Ix;_%pjO3kfB??IL7^ z{kdI)jIh73i;xlamv(VV8DVd#)zCA%B~Lvg?CgzkrHrr>2Ix8?>4|x$~H{M2>WZh$TGqF5^tOCnjZ(Sw+^r zJ9`yb8wX`(t2AJ3ubP~I47xBwRN#)5}zQr?)+qDjH4&4QZ~ORx&q z@{c9U#6y$v#+ne08|+M0Uo{vPAhr%8T?WQEfX8NwDJzhzL{^x*lnO4w2(*0R)lA;c zTw~fKrAM&4@;H#HmLlFQkzz}JOYc*7Rj$ynOFNP+)-1PbTOm2B=E}fAR=4J$(Xjut zvC^+>WQ*07J1s3e4V#Fv1!#w3b5)E7Ph?(S)rg)jJ=Ir*5U1LZF69&e5`zf?RXS$TcAu|080O&24y!M2V7UA)t~_-EGkEdz>8O?qH5CUEjUAW+0v_{ z=OA0kB2-KEHhx0#x6&D<0(tW4#_suc`$wxoUi5xr_h<*&VcHwJXZ-F_x^2CC?w*ud zTkek>DWk#@xNjY;o+(^AG`VarQ^yC63nz<7Z#BncToB%v$F!lCdI?L8j zO<1R4tR?k!at+mnp<+F2s0J&Nn~x^&jAgBqn&XP)Qxykj5u7Wh;UYLneuVdk90rr; z_%z(pESGAQ3^p|rXr|$!u;}J@x>9Piv|#ND^zIuQ^e$G6CWl8sK60PCL1h(34PblO z$jF6Qj;|XHbQ*_T$nyo@vXTCL(cSvvrA-?6LNGv z(7c$Ve2$pp7xZamOh=-LL6 z;W)a}(vZE@d3x~@{J2$isOU3_*oa79Eb64FMxZXLZK(z3%s8L~u^ zM&0`;&DE*8k4e|$qy*hF;+kA3K{q(u*-%o{+%RP)4`nWQf0*)0N1am;)YDJUJ+e%K zu9s;IJ}=wTjP|RoG3XW{O!kUP|AdLtmd~Wtx=J=~C zvDz`#9dS`ZPi-UMVU9Hr6WK{wWMG-9tSbF`_*Jhf%d2cFy)*6d9OZW`zqm&zNv=>${kmlI6s6EY1=~}wC$BbUK0}!vzs2KHo>VqHaol@O)?L3 z+g+>A6pn$(BFw@9ETf@}1PTm1OklXmYP%w`&xt~e?4$6iZF9>c=t!(Y`moFb2zm$c zlbyjNrNt;twKN(IzUrd&d~SEF%IcDSsgmq2aI3N^VuFPL&}zeBwGLqb(_Uqj_Y1bP z-tsD|dM8#{_2Wppl3L?%?3hqu0T6JrTgbzCX;{^6W%x@*)@9ep;@$8V6;A63uaumc z99Ie@iAn7pX?UXQ;W*15gxUarpWtR$eN*RHzMMa(tD0rBe~U1(ENth6k!}IC>LC-t z?U)#Slwx*hZb$jTz3mr+OdM7r41;prcvb6s(29sBO07QMqJkwd3mf55OBU%SHB!1{ zEz;u^cMDcCFB*GaxZ&Y0iWX{VC28u#ds~DCg=}_r&>1h=Z#}i1nAN+Av9&e*p?l6q zT0WcoP|9Y%KXagESWP2JP8rghR+Y_eN|W-*Go{HgzP-&{XR@sCa640(xNRDf8p$*! zZksJox0?#n4dkGg!Ah{KzGOSktOSOA3CEfz;CRgNBoKoCB3h(qJLVpWr6I(lb)J!vm*xV zMq+h{n>`SXd5WJ+#yo6|NlcRY!lWd{zm}Q#!X&34L2Z@Xrp(*U0W<4m3^9s(7QY&L zO^E|puhXuybdtt^8fkJU@2oy?0MSTdJJv)=NLUjkMvV>qUnV2|zg+ zXZpX(FWkCh#2-_!nybnah1W?%ek}Ty=jei}EdJ$wiJwcg3 z)X@T=E-&h*$q+QXTYkQ}=`}S-AFoVfq@k8KZ$q~1^;2*6CsVsLl(!p7lzz!le?mt3 zm+c~Cr2oBLgpBlmu#1q9{uR5}p$P+;qMs$D=LeHjM`GU&q?VT|tyg2opw~ZX%~^W- zPsK01XsMamO@wrC_Ol%IEkxk8s@KO4LKpnVBIT7!>zH&F#QS zC$B>|AB$T_dTzPs%&jCj=O~hNkT=Akc}dWEFrhB!KiafI7Wh}~B4mO8lUZ@lxN+1 zsOR|&YtOQ`sj3sG%HtAtW!clK2PAd1>V|SaTA|KU-}}dnbu2Q zdviIu2bh?CXwzzG)@@orO=~mDp5E={H1i$CDu_(3eLMX^>ekES*)>$q++6r=oKw%Upu26et^7nXW#y`4Qu^6oTDEAUtkb6zC>@j(_dT;(!j&zohSoFVTvkm#W|JyEP3kDAVY8N42_uF<6@^uff zMk>x|>@)~P>yWQoy+4js{mbHL^&e|6bR#?Nl>0HKP0Zd6>ALLqkf@8DT=~45zG-y6 zPS@oc-eY6Gu0ab#>|{+1Y0*Sr_qoKZ}8<;TnE0hwtMDiy|4kNmj)2 zSliEnyr6rTz+iMx_cFQSRdM-g5t)8BKOAtltKkJ@pcMFLp4-(450OYfYR(wo}To=mBZ z-`dFQ1@UtS!C*+uBCi+ywKCy*pq=At7PqD)EsV?S)mD4;vg_`rETko|c5;(_dNPCy zaIdu>1GqNo@5)yH4a)T`V{wC~&4QkmacZ5VT;C`neX(F~U=BaQZ$&!47?JIvXSGi1 z5!MB5A_!7ALtqjB$55ZN7d|#cZPcJUmt&^iFxn*DzcxWwxJAl)E!$+!Ti)v?5l18r z_wC^bwy<|?R2;$hF&TbHzO`i2%oAJt;DhfjWCC0IYH9^fwYO4xs>h_ShG2kAf`BE^ z%DIP2w;1RTeC4SQ;{ z0s|o*0)tFTF_oDV>EL|iL-U7Ezm)9i3=Ey*kT%*#)~Y8&cjT~_Moo)ER>W3nFib^< zy|ow;qRF+@V3^OeJlh&f07FM$NbLazC^ZCHVDK0Q2Sb*B7cFWb;AR*XLKH}0K(JJB z^T=agi@4x}9}|nQoJW4`0U;ri7sslH1u%IFMH#|@I2z9(wosJd*0=SyEol2pFB-FI zRj<`9K+|F3gk|Lft&+MDyHY;G;d}0P6cL|qA|T! zLai5y&CD;oGGM#6jh+-OJ zL#Tdbw=UXwtbEC0>6u-C;7Hk6Jn;+7?MN9{@T5hF`b}XFv@o=aN6NkJlf~NB zQEg>QISqe{SrVya?0bksQSiy_`h^o7Ta$$02Cl#}u0I;s5}aq(elUHR>A6>Gu9uNCsLjn?#p zHItH6Oe*ThK`Zf%(M+ymWsF$6rMr>5iilUW76h$TB(F+mv#2AZp-mmn2x!30R`t^n zjRwd=p2&~PsI#1qn&s+b&uke&F%ZP0#?wq@t;r1yj?l!G-~3KzwAOx)4^&@ZWbShIF-q8 zV>4Ypi#Q}h^L_e7hP$6%cmKR0o)3QNXZ(ar*ZY!m1Pe{XU-lJ*vQ(4y{&H{m(J-2O z^@|_-F8$(5II3Sxr9Q@QMRQCm=Dc#!D^7@*_Ih8ElR0YN-)#uV>1M6xhy%IgtfuO? zVY_b(U-y&m!#EZ_lIZ7Uto(*qfAwODyC6b(mz%w!;LhgOuLRAjNG{Np!mgtbjqS-T}gh*^jgMvrMr(GYPD8J+N>yi(a>Z zCuqbPWsEujB2=s6RszCkxc-tLk~L$1%bIv=Tw+!qq?TD4oR&(9ReD&L9W>$y({7Q> ze@hC=fAo35Zp~mM@mRn)hrD2S6!<~XzH3-pSnUv)6FdV!*-MF}WTa?!WI>uKjg%6c z^?m3`i0M(5ocSt*D#8(dgfZ362})i$8Jc~fFuV)m^E;F~+KH~3=2>TtvE0$LYnDwQ zO>ZSmB!)yOTkKQP)OKqPuCgkx0DB4Id`E_)JwKfnB$Y--s;SnBsxI2rs*<1$Tc?x$ z{zf|K7#Bvn_Tk9T5px>P#dOjdSrkWdV?pU1%+S!fr z#Iw$*$dT0MhgOJk5TGF%00EK38_F@l;Z5Kv_H|vt}Ot0m_^Gvs{Z=UH^lP?>2rrd(pHu6llh0Ho8&vdI1eu=1wH`~di zuvO_LtI9LgX$UO5PD8-*{X<-p)t@QP^o9Jv(Keagn*`E4jO50lFp?YhDi%x1LHM!` zB#9wFGE-jFn&GV;FDnbeelOlJMX4A+@YLR~!a z8MR|%>5zsYgO6aDy(#v0BANESn7OL56b;_lNFp`y&XqHK5!sTMTEVSs)ofw8l_?{p zj&Un#W5G(zt$tMJLL?Hmrt4dG<}2<|fef8N)_8 z1-&VN$>Kk1Gu@N~P|M9;DK%B+P2~m=D`sUv*Vb_Kj}>SpO`_{Z+jJFAXjPz^y;d^| zv%|e|Xb>+U?!{w_^2!+t5=%_pOF=5ri?hv|R-~bz&%4{U=i)wczLb0n(2}z-;hBIB zNv}SjC7EE5`Orn>RBe#?j?`-AXcQgAWC}+cIUO+C;PkQntgN4OQw?E~nPg~mY^vibcddB6u zuaL-R2QBeeSv`#CTJ%4%mV(VvkNA>$aDE!33^0u{x7z`DIk8}K8>y4BcM?){WWJS6 z9vX*O@=DcVPiGWBz><0_@6}*oDX$G!oP{xrFWCGl%eV>Yv4`ywRA9^(#8>KV!>tr*YUJin|a8HJz_0bMl9(jEl-BEUH54$XsvR; zi%IpltG$In3utObEZB??I-y|mFDhxv8(FqsGuu_THKt&5R+bq$WC-KJaxBZNZy2yY zF`0Q03!hqpx6h@5&7pL&RJKqKRqBk_LzUF`G8KUSIFwC~F(77`Jf@!L=@e`Zxn4bi zn{45*D?_U8>ufzP)g~$WKV=soRrmFF0aetKH`ql;)qSH~gjC%(*+odz{b{>6rGm{r zCGWDY+!@}Ir(Ur6?2U1yg3Y%WpzDIoZ;E@-_@$7kEq<8_HiPeD3O2vlS{YlgIZ*1e zK%FKRY(9Hqc#`&pr4k#hvMge!(tmzWhL*F>7M(Mykx>9~%hTi%lM6O~zV07~?T&f? zrrR?{SMJxl&isNEY(BHp3WG%;O_vD#miuhrx3p&m|B2NVY!2icQ6UX^IZFVzZLinpz>Wp{7aJxlC%@I4sI z1fS`G&2O`X3kl$Fw~LSf{xfzF62O1fEQohxfAM2>TV!`H3255Z_ zLT{24BLW_AVUwhmcum3PO(GO_O~Gc_V?E#8GQ5WiHh&?mgv4XFSDgW(H@;x=Z3bvF z7zP7<#WGzROg$jS zh=cAYtEt~NCZPMtbZQ2q7x~%e(6^$W7;|=dbaMLJL-FcZu(`F^l}VsvHoKhE3A33&HA6Q_8t#k~w6bX7+p@!#^oe6;R|m}M-2v|uwT5f5woBUMG+eqS z=X(jnI*!b05k1LSuunH|UZ)#Ky=GsDH>3j(KrhlMr5KanEyWn6Sq?Ci=4pOVn(-o> zR@LVJv23#UXU<;LW>jUZ8C5w^mDy%~)c(|fyQ*VqOEuWU64|j^pbWuVQgs~sF$l{~ zL8gUgwFEUZoXl;AUM{EwC1~Z+%`F9!g~C^gQd(d&ghU-Hdyi>Wp3aIm|I>0soOQGjZdDn9HhH`an?`$wXejNSkkyUpr{GQY zRaPM0Jy<4+G&oH{``@jLIJXvM*)Wcdvfj3Rq$z{R!pY^6cPG?w4oA4FIX}W(9`P)1 zcFNFe=m>Yc?MJxl?PZT}A5*^>J6~brcg~q^pHEgo6iI#%4^$U;nlV>${yFW|gdINA`xvEo(-o7kfo z4kTc)^GS(@uI6wEXB+s2u}!1&M^fang4PBHJDoqkp-6DZ4@;~#Sbs7c$_x&LAFrcEl%=!u{n{T@NfuuCJ>WRLmiVN+O`sNUwSB#hcshRvXzuFDTWPKSR=n2SY_cyAA{X=1P@2(^6Y^ zOy=|}6`$U6k4gIur4>RspqrRJBHBwNBUE2fa*(g{1ohn!S z&E?A#C)Cp_txvh)q&lj}J+(Tee4{;591*U~0W9@uk1LFOh84y=;bI5=XLv`-hiNHT_5O8(@|`y2!`6}xZ3!nkoB2gnIm~}BKV`R>QHlLT zJTZE+AC;j%h?>WYKA4}DXf47m-eXP#f6+dI27)M*B$*oT8 zP8Q~|iQSV+7-#N^CHFz>HnTOJk>JY^3)$+Abi8;7nM+o@={wiIgt18<^mMY7a=8x| z@ysKyjLXx*#N`+XjLvwkjT@fep}|;(X%I>%iQ+Ja6Yiy0F2u_`8V^7Pv&eaz8Zn1E z#E)DBma{U;IC3kr%52&FPg4WJX3FDvdmWtI31?KLrk%+MX2G;Imt|uOk zUI(RNcu2BnB~TnCe-J6Adb?k3YKrB6J*6ia6GgOzlZV{Bi>PsPN5vGskJW2k#VUC9H* zf)3wSBVuv}BYb$y)1tdy%_otln$F8$(`oS2n! z4N-F(D>AX7@i+#VDjEkam@&v%U~5*g27@FfIZKv{0`#&8=_YH-o}}zUv%jyZqA{L{ zo))U%Kpw4VeD4}l&`0e?BeCPa+a(xVK|wwqZtOlWJKWe#^|kYa72(1`y7&?K!+jVE zb#Wg?eu!=;YaEX8)!XjF(A)0A;M`o5Hm$Z&mN@z_>}=$4gfA|ZaD*?RIOLYo#Mn3< zyf4iomGeAw;$}jvVnbAIsL`^@XkjMkySOG^{U2t z+o7ws9lG;1bmt>ap{mhcEoO`d%U1s$|m|!!l zl`SYbQR|LjrMZ>V#-LksD`|{Dwa#8)o0Qq}!8(*V-dNT|KhEvy)oZJDys@m0kY!z4 z!Q+i(eS|FQ(-mY{yMY>~6-J{_eI&?(UiG*;x$5zG(CXyM}| zSP^+|f)$oQ41h7hZ`j`M;rAiPb*1q8T%kOr@cR%zkLgje6ZRAdSYrd|m#KaHyHnIY zE}}{J`0!a!0$KdWRi}|T4`+i%3(DrH!gIl;a9)mH(Nm60wL^blK@A3vhJSy$_V1T) zf0;z|8voC|{0NH!|6DKCVd2v;Ec`jFRoI$nOeFh!rppNVvYHG5(#hgCU>d7m<#}NThPHn!*1X z%3BPVv!Eo0*$e*EE8mTgX(W%c@ogYt;35UPC z(`FN8WzGhvAV=Ii=kD*IwZu7~zUu!km^?)c+ipVBcDKR?UhQEH7)=T%5;4G^mPz*4 z)YZu}ac{?4&&4aKdRRmr(^bp*?L7Bl`>S~F#j?O^arKH@Sz6c6KVNX)_ahd9hbgB2 zk8)EnOmbEfNOuDfb@Q#>^XJak0DfRq1Neb6H-PV7)d0S~9zY5(AG9Dfi`@g){(A#_ zh#c=d&o=CVZ-2WL@3#%~&*R7x?h;e~@8_S(Due*>-uE#8vNC|T%xmsS^JU#abX8nd z%qF(1v6R`xtm2_Vjb*h`Y-S}P9z=Csj zU;@`Ri(%o9K}3Cl48vvXdA1k=rDJ*ThA>M4VtEeupEv((+XQCw>pdr;cJNWKDW2PV zcDfmM3P5@Fae(3r^H4#r*IG~NhjK6N-gR2`dIa9T-FF~sJB98Ku=X8&^KatND#)fc zt%F}|&8s#TA**h|zP6LdU-)2`+qFVn0yrKl>IIW*0IL zU##lFQv-Sr-z3tZAuz=3n?ym>A5?=LMM4BHAu3d)9(15THt5tygA6qr5r9V;IoD@? zy})3YW$rANym39Kw~iLp-wgO8{ulO@)(S^nO*pa^uO6Zu_Q;y(U7eAS?~biI3O_6L z=597Sg0krUi_!9Y#Mua|wSS|1w>>WT(u(_TA3fL-*NA@=FF9pxDZFdmL;gb7D64a4N} zY+RgE)a>T^`S0yjTY>3j=l@T?XE%$5k99lNo>F9Lj_&yqM)V)2a?k#&m6e{N>i6pH%O49Nw zMEvhcxUlX6fUK@!0MD!kkRUE03g6mpgP^UWLD0q1npg%3gdQYg!R7YOXJtZwcA8k@ zkY-}(P3ZkIU`1@oAP4m#Pgzlf!HG+7p&?ZyoJii0H|?gET7GjGJ;-lKbdRDC`ryHX zkpQhyLU`N|?qw3f<1!S#Fk+X}PmWe{zEcl$>ska&j#0=3&FS>51kEI*O3hSRR?B zn<%5DEg6yY`uU|E=k_!Qf`~MZ5i15Ds*+DTg>RmE3g0~C6u#M>zHveO(saFGn|v`{ z8|UdQr0YOU(kutr6AOYC+)W-~g)(`>VQxxQU}svkts-^KnnJ@FN$7FfpVq~qT0~DD zXw@>t?Lo#M9NKiay9mmWjPYdFuX|wn2$2%L%8aM`|J_-&e;j7FN#`GR5A=^L%y1jy zlrl6GRyac-2G)b_fvtRKkGgs^v(WY1gZM>fFMZ59E?)XJH^2NR*Fj^U$if1oQ zUCcmdbl}d#<_M6+`4S>OB#K*wF^%_7`G3l`k%O~$F-F4!q}goY=auByALsAhfS}=5 z{plfc*r?{f#RIzF7X#=C{n`ItI@|&i$YTLQI;ik;AygwzX9#&ZlaU9EZJBINf#n7Bk2`%7c~p}bXb!T4MgTOV@5l{`jJkc19_HHkZtx(6KcYqGhz*Fgq~4Rm&~-!^9H2ON13UXI$0e2 zm>wsKoPFvm^|Oy?FJ!qN#Axl(8SYXj#ecm=@{!`G1?) z1gKXK6bL+4DC7{@;CKADMtp`BeO(4{)2aq=)0rDU?s=UIfl<$^AWsfTZJ!EOjo$YU zDWC{aMpSTcCd=3JSg626dN%?AOeVnFh`y!p#bs@e_#NALhRlJ)LQnKN>SRNr*5!9> z<98gHR$B|(p5S-%94NQ#oO5F%MkMI60@{{nHQE|CfB-jE!^XR7;LY5BH`s1*!_0F< z@%2KjVL#72mVPr5wc3{LDX%Dxl7NhCx=V2ES=kH#0(qx_Eo z*~p-4|6|rj)Bo6LBszs3Q8OQMRcBsm6V-qo=C){ZshyP(i7cka_Lne)$efyn)EL0sI02w(QhK6=UHnb6cs9dyiVNQh1(34YMGTHWr2KJ0>U?VQk>*ufS$r$egiwI9* zOT*{Bbu7YPHW}eB%MgA?Y~2xl#8B(@y>W(64s*U~{(D$KuczpS2li49tX|qcxp=!S zk`67`=0dS#Hy3tvdV-PMXfC|w%n3UplQT=qd)VryfA&AGD+OJY*#J9dq7V6UIPlaGJ~Ycm*ArsOH|sE98A->PD5AUV54M zyxoY&3JGv7(vNZ^-pAzy7;NS8jY$xSL{i>IR5E9VL2|ct+EJR4Af$^F0VXS;qQGkJ zqnWlc;UH5mOagFY(CK*}PgU5G_c0SQYtN;Np0)neXM<-QR*>lb_e8TP09hPn?w>EkbpLE+d#1+N(R|n zmt$3==!DEvq**piI1;&+_GhgkJ$=*(>4O=^e)Ekx>O{3Utn}Gv_|d998}WLsZjiO( z)5Y%EskvbLzIIspro1#QOcZ=FHK6uhmW2F5Hna@b4{pMxXHoefu+`&~)jsSZzTY%VH@I$yzkhKxLlFRA0!(Pcp6-H##NuUMN^WZW3pytz)Bbzb#;lq;b?a0-J^ojx;Z94TNdq`eRq`d$<_au z2#&(@9}xPef=7f7d52T(|Fdku(xqwqqKvj*yY#k1O_WKME4%c{IKAuVA>*r1x4S0J z$ImRg7r7s+l&Q=NN8MVKTlhQ4qGXZcdEw2Y@(hQk0l2s#tsIQ0)TqNiLvL?o@-Y}! zKnTtSsl#=^DJv^nM_07Q=H~9Yx|oVN@%^)yZmJQlQ@SYA7e?woByTG|$Vg}ZtA_!d z-L=32@RWJ0L_l}}{eqNf%Y`81jz35b(=E>&R%UnU*(YyNy<26?5N)03kAC%Ix<8yh zx_eGmsx^#ARl9x2Yah`wRx_f@*E%BA@IKWM?OM%a?XT0*Om7a6u8mGVjq zsfYugj8yc3d5j?YJbSf)Rw;WGfbHVku+Az6HViNwWCRW~!#}=5Gc-rQY9JrBO?Lz( z&hZ&)Lz6h`i+~Gx@*-$wKOLlqVwEz8-)9)qHn#yJyNYgu%htM;R0=L^B{{snja{vi zp2TXdDuOK)z7Ne)fVDwV?MS5}wD2sP82%1Rsl0obFPDLr~IF^b^T9pqd)aKk;4%Svxd~*_OqiU2Y+r3d zfq?Y%xs%AS5%7%*Rd%%oHL9$BJOiUhQh|)14Z+lTfk^$BjiKB9k^R!UbhR@Y!J2sk zjSCB3H=$r%Y4zeM4{Y-p9hgWgInqvG$dR5*UqoUTfck1k?Bc3P?8rKt7g01Uf~8UW z@V2cd8y=V|tLC1o--H9nExo}hFKGW9TF^^Yxu96VPn8pRZH_awvDSvaPhRD8FIn|; z17*BGYkDqIMka2?0NYi)C!O+YUg*ecwgeY)C6E66eUeAFHCtW%j;gk3M_t_fd@>se zFn?SPa}&zA9SPZrTHr;%BhPyO`3YI?7q1l&9)B8xdg3YvbJg2g&XYAZQA4*soWELN zk2G{iZ0MiNkYS+`^`cLP(MUss*w9g<&*!anL}B?=_8~B}Kwx*0ZVPHs7S-kd@n*Ji ze`Y%CykyXJO%$6?uHVRHua5Bj6VOs?qB0GgquRx0(Ew>YjTx?CK^6tkCJhLNNinYg zTMVF+rSL}2%fZ%6b5o3W+d=9{OoVh;SPbgEu$a?V*?IdVr)FZHA1gA_FwAn`{;*Y` zH@`-7y|hNxa}6~&~kux{AO{Y9Kowj|32RC)fgVUMOXLxXS4Df0=ZeWy`X-Ez2kL<;TRvGx<>Nn~@ zo-K~$jbAc`Rk*`;4s{>D<}iv&{B+57HON^nv8EdBpf)YSatp%jtV$bIV~C=Z{F$zC z)=T(J*QkGDgnrH0zp+Of@9MWxwM)~r1B2H9?Pm;4cgU%-251lYQ;Oz1R^L#iW3>mO zucinaY@!?}-+3y2^S?XI;y3qm%68!izd)TTC%1g|j}LKfLiL%?>G!;dJz6Rxb zP#oy&rFKuD9R98RC^-61!CA!>cFJ47{uh|>K zwY6qAI=Q464Go%mUO!uqX!zN>Fhv2ta;J+SOFG=8vcY7Nuzva<{6*_Q2QQTe{^pa1 ze*VAw>l?rPAFce2X1{Y#9(cS85tr3FUiEPef54yCR9XGb>-bg`jLHMI{q-Hk|K^rg z|LP|hk9ixnEKmW*1~xR+ea)#-F5IX3YMW|0gq&~Xr3CD9UiAG3&pv`HrJR0@MyRG# z{hk7f0apUl#kx+V$y>sZO?%60_@VI9KE5zNHW1^;oxSBv+#thcz_IGggS!ISp1my; zDb-Kxr>e?D^@MsS-XD*iK5wp?W|za04{=CLb@cE4;83eNzk1u3`0c;*m3H@U+C}f? za=-s$Q{|}EazB5Cb7(2bV_BGOo#(9!#6mr^EKJ3Q;1X)<6l?^4y&5yX3Tn9OupNuV z5p}7Seq^Cr@p*fHMVUo{C}Fe01U8QISkB{sxPp+HRi-;dEebxzGb_*=K$Zx4=NWIUrJMz+mp+VD{i( z=HOud;GoA^fPo$8#-dKA(W;<1wC3hMU)Dv4>VObQX25<}&Xzit8P1mXbk}6M`;tM& z^*V--GZ#fiiZ6CSWu7DtBd^i-w7Ofh+j$+j)1 zF&l$zvLXo(BD1f)Rsjrgi-8?%6RV571pPxcrcW4yy<{id&lmdHPT0@x=jm_A#ejX* z|Ij;VMvwOJNa#c1KYR5WX^EU80Zmm6fV{D-^R_E>>Ku(pHMhn#<&Ei#Woyh{wc3?x zOa&<|ATJDGU06j=5%F0bf_>Srr|~TFhE5h!X|XgN&hXOx&O$M;igN>gX1&xLh^g8X z5I&WfqfDAgRD@!a&{WVu8X&Gj5n547xYBm7ZD1qT%}uJlH&S)ZOAo}ChOSC!?C}}& zNvv>cTzxtiob%zi2eQ(ZD;?f%n7+s<0*n`diet=-y%xHk$_;1Opn}8XtG9o2bEoB1 zEv@=tSEHuP-}9Ltaf_;IspevBz^=!a4Z5lg=yf1@wbV!CoIIDM*4tip5uOB*7PPt? zr$BeAYT1po0jFNN*ajT-4arSE?nk8Q^mS{(t6HiF4^v~fR@Klxg9rR*b*NM+!gi{$ z$Yw895TfY+&se=-i*-?B>^7CNbSYr;)r8#0Bznh#gBE8(LCb9*U%`?CSPB@ziyW|! z-h+!2C~OUS0_adl%edUVnSAkk(<}Pstqe~Nl}*{Uziy}P3&J*SaL>;bIzAwhBB9NracxRO)?gj zoPimqWtd6Jz)WdDNH`~0ZFX3Nx}O>TQ8ZHw&hW3W+LrY4;|o0vZL`<5oC}pUi;+s3 zy_fQ7>b?zgjFmQf5(#<&Zpi?^Ut#22!rw;S(7;7QZOge>+j1`9?{alRZ3qU`g8npe z;hzzwBNjOZ5+&kPKt(8nDk22EQN2qDjffB=Nkj-*BqGF)?ePOG%7~EoC^wA=HE4*F z5Kib@D!*nzwy;g7@);2rOIqTQK68IPU2Kl5V>Ogzw3^XlvS_Z6m#IB_`nB@h{d zF9kz*do{(0Z3uzL7<-;dMCSEli41~^hzwL$L4EoK=DZC1K9qs>0oLe^S}c0pBi-g z#{#9pCZV~30V1FX`XZq4X3ZOSj;R>i_~i(q4q+dCldQ}A1C&H4s#$#t4qF0Jdg@V{ zrur`Ev7$5!lo^CINtg(fQX>#YF;MZdMPt0%DDSImJT#0sSznHjqv{Lj<;%ZA(l!d`^6yYY0if2!ZAcLiZFgzw=57?dYxIxC`)^yh#Ift5^%Px9x5UV1*~9Z|BPcRL%1fe3-MHlgd5*t(G3dfe5*7tbPkJH!3N z*~f9jvU3C(a?9fd&*=C$dAH$DTh;9-F@k-f%YN2y(F=XiF*I@(viU;|-bk*XO| zFV)wE)UjiFu#=Q>GKk%_Idlcq5kbehAsEg!wah&Fqa%|$8(KkYX!qN=3-`sIFCl_s z#Px&e+sVjB@09V#peG^}NwHh#jb$iwu17vQO;W&(@7BKy1;X{7sQHALGybwbGF$n^ zzFwK2KSAwSXjWXdX%EPg`__{(CNYz*xDQTE9($*szw zj3&Qxf!>MHJ`>pR`FbY?@)(+kHX7Pw__;hS?5hpv25YI^(j2c-ydG(Vt;zy*?48Dr zN^sqsaKKE4IUd@GGHPsyo{i9ULPX@A1;AJki}l7TO5z21wz@={L%-Z++YECmh(63> zBUTdR!T2q5LoI4Mojwo2D1a4L_-83p3bFeAW~tH=*TPmV=Rk$+qC_mTO%{ny<*m<*FA^3-vmUd~5pGPsLYA{9^>KkC!$sz)ByciM^rm zAP(3jo)LUox{Q6<(q`<-Rsn)wlC7&_Z)`N2EhI1#Omx`l!k z`w=(F?Qvn%%^)@&KjzvRXS@=J)VVdjv&N#O9IND^Y*jzq=u8;Hhham?MhC@Y$<>(w zBkRl>&wyhyjacT|*)5I6%QH3;Q_Hj#+(5v6i<(9i;n zEe-vx5j3u`y)9i**-5IDg~9U2^dhDrcD0P2L2W}(liCIaklMx%YMV~{GXv0@f73NL zK&6{Q${RaE82|Rvn`>}qwzr>2y_quiv+0r&O|9zIc$qfTT4=nfb+KgAvMYGROE?`R$%S!YNUO=}1kP)!9%lrs_@e21Kfj6>P3a?(ENd~6;kA)n z)BKJ$8WKI!>f0`gyT;YOJ4Rltxw$?G8*P};CTuqJ&i03mHQPV7KjQv!9q?U^E;Et} zV-6TFos>iOi1^4Oe`i=m$s>z)MeyCtW&_VXJr-u#;Co`jrV>K8sHzrK!s@;0VN?pi zE5|TF9dXG)n9&>~ArT}zU+WN^W<^dS`C>ojZAjS= z8>>ds!>c;H>V{YuRU8^(tHP?}V~gtHxiF}^(x5m+EDD4*pGs?YRw4DiG^n5`o(qur zr8Fqh7T+H)lK`Z^bMWNu{K1Y^v9~1}V%YP(eDGMSl2gQ|Mh5AZdmd5g_Rk2il zl(1K#w#s7#fld6rhv-!O-b#e3e&0|apYnT%Xj1+D*uuPiUc9hbKQCN3Pd_&;^!0Py z!uk5yw{U@eb}n3~pTWWw{cKryoPMSk zDtYh~B}Dwp&4l>eOc2t|gY)>e&%fvM?*;sOA^&dS-(v8%gNxk(j;`lkyhwah!JY0o z_vbwa4*lcT%U8S{OLphL`#P@}v=4M&^Kv`i0VkWq{3$MI)ImIT;Gs``=qICT)R0Sb%?YRSQ|Co^BfzQ7CO9f?Tin#;Ff8|qGbIPC)Lz@H(%lT{^e2kJw+RiSd zim?DG+W!x`We0Q%MvFtZoC~*F5WfGa54_`@ulw+^uYU}?41vD~{`nK1|Jq;w?Y|!W z2G<~v>r_a9g!h9d=I@r8*=jjjN~+vO{5`kaf5^3+Xi@IhqwQ6nm|~g%8QN99f3J@D zVV0xd2q}zGCl*h_8NAVfgnP z7`&$X)*q2!aL?hr?H6j ztfnkBJ7c6IWf=M?GzRy#URdH;u!5$-RS!RNpH zmpk6@xd%UT+uwq}vjFzqFMZ>-U%TZCZ+hR&ds_g|@wq&0d@k1!pBYu_>f!>nbU6mK zvEm4|@BaKKYIFMn!{O7%Y>@Xxn)~ACS4Qx!3FRHZj}9UDJvD+KAA{hxJWB|Es+c_} zE-x-vfQ1`^8$7Ds81w}jL2!;+J4FOE){)4ytX&~4? z{fA$8<=?&Y=okO*M-sgz4pvD0l?O+W`fStd-+pgG=M$Tn^!gJuIv*N?&L_`bKYDGD zs4S=8(MPX8HPMiTD^-Ckjx?!D z<*fk6O&0lx47O0T_Yd@xk%ih;ii$kQ7aa?K>?oJZ2Dl*jTSV182U@0^9BB1_O~Rai zKA7(R=I{8`KE}LMez{zv<)!ju+5d*-YF|rAK$K|jXfG|!960pAo4)Xs*2@v=XI^m6 z%TY+$icaALbP`_Kzd)Be+WQuIOxFf6A-b|HVPy^kxaBu~{ZH>XIX~##xma9$05llP zq%k6=%yMhwzAp+!7#kX6QETCX5#erm`Qoe%aB*gU&h&zNbaN|>rT&1#ClHA>#Y1fy zzgnSTZ$=Z_(SEq}Sv^!PAe7~avatMp;$n?d*$|?NbT7FP@lm3pAO9&Cta|{}X)ts6 zCL}`>ju_9)1N{xEDysL33RXpqJfU9#bROh4AmC>WsUBp>@Ah*^g@7b?wUyXK+RqNw zY;P$P_I0E&{mp(m(J|BmO*@3k9%ssIuh^{aedTw#=c{#+4wuSXXjqBgZRI#<47{$M zf6{S925RyUwLwd38iYd%lAfd8N=)zngQ`P=rIvovfVRLx^(m1u?g_>Ydf&ocRp{>< z_|^3hUDNBsLgvG^^-h-2JHv!_FzdbLw}k#0`aR*?Euho?w4xu)wqyk8xXHf(0}ZLa zTx!AcvwiON9}Y6+lt$ zYLQ^zI(V2c!|O}w<<~;Thp|V`Sx2!ki^JvP9c7H)l$TZ*=8tVbN=(6FJ>LBTo#~sW zV6W}SUXNXnrs^Ylbo|#sAQsye1aWD*vu&z7^}{=NJ>&A-S3L8(HvRDQ%n#4b^?rDM z^LhRAzxRS`e|Ud&;g-ie{s~)u_}Nd?PRo`WGZLr(3>Ir}fvMWz*@75j5HOn%yJW(^a6gY3n39m|rJP!)r5ubK*usQ? zE!e=6{>AvVcmiqP6TODl_sooTaolJxoiJL$+Z~L(|I7aB;q~FhG^WdN|ApM&h2&a2 z`PuW2*UgW1eNy*!HODJj$GV6#CEhE!-*+GE|9(Vxq!Lv>d%U`S!NSae)&iU=|3?i^ zFHUXVG*xuVcBh50Cqym^h=kIR2#R%caS*H6Ud0Ov{RsO$DOrB3dcBXzdDa+w4!h?oPcPck-bqLAMiuH|KqF- zx7@$%fT8|lNiu8K81QrE87_`jkZl5-&&+n-5un`QBTt_&Xe9)RrNvF$`w!eePs#AK z@%Z1bY6aGZA)dlSh6yHXm67-L;?w|hl`fc<&|~$wMIm zvqmhA7_qpwn^EE;g_GianiNjHO*IwPhqrVWr#El9srW7tVKrMFHBuu&wxfM(cVVvg z{IPd`fIU+EjfL#~Y_~y)-`>5t_~Q8@#rmB2wcgxan1Tgt?tTA?AE|rM0b1YZ(9$BLB}veF?%2CF znV-2pLd6)|dfNqKaf@-6)v_Pe(7Jx?yVVivatvd_e{7h5UzW@?}^Rwnw^I*h0$)Ig>|YGOn1s= zTEN~c<5bs-Q^YBJFGofUS@e3}yUdswy^qq+)~^>Fp(a`dOz2n{j7f0bTqP98D2G>xMrvIxzfU{1t3B8EiR|=~)C34Z}7K zh3R0VaV%Nel707>CHronjs=}f2h^cWfTRkE5%SxR@b*SX^!BlUS7>LOR+w#R+e7R! z_I0+oy}3cQklPdTZ63^qC7+cPS(6%igIFSBnY#YAu8f$H=R{3*wT?(bFFgUi9<_J0 z#QBAB+&eK(fEfW}zzo9}FvBngqGI|g?gPUdY+{Bv=-Y4ZUhO(6f!f8bAc7tJ!`weo-#lsQiJE8}ly>vI9?YfP<|V zD`+dl%2_9Ij~CT##L98#S}QD<&QmjML$+G)S0 z{F(Oh7ZV4`(InlKe>C9Nm4oT)=dUDIak%p4gY?CMii1ugTy6!B2%T8EX7F@OXEUUjs%Vu52@@#wV?!fo% z3Q~06S?;t8(=vXQ;lPV1Nyn{tL&gPfj9l;*$w{CEuH$krzqfrzznk~6JNTUo+YcIx ziy4AGnLEC(=8o?l<&Ga5qPI1kCGKeZHgd=J=s?~vd-q6?)Nes@?_H6$Wa5s`6nA{) z81DGY^ln)liGq?^pp)_9G)FnPXqt=DIwCsTbEER~4`w3G3zJCG>seZ`)}1Z&|Fict zP<9>Fo$vX$xBK>&bo60Mw#?-8MS<1?MPfZi@^gDgpEefa0fWhScwS@Xjb{z-Eic*0 z0^;HMt!Ho>gc0C?a16+xytF}J0Wwh%!^pvbHV9jQfCd{7gMoH1pac^Hc!&Teyx)IU z)w$=~ds`p=$mdwgea@|OPSvhmd+*wN*REZsp-=yMpRV*;c(yl8mCHHT)uA&($4CFQ zQHCW%AoOE@nH<=L^|+?|pPA-;C&4;jEfY2*&x{T&Gom8=K%_<1uyWDka;FcHZqg>m ziR7gi4=htxb@tJxl@L4~f_`QM;V!Mo0V8X9Kgrf)_$55RnsDOhiuPcsZ(L<49i$c0 zGwaq_j@|OBp)nD{)B0c!Xo8~3lw{3y_(aHi8P3k2D_(8QHEGVAgR9#?GexVd=(wh* zt_>{JiTY^Jc5AOR;55BbhV3(QH}c9JiR_7FXOxVj~csG#8URjw`r*TXWn0!Y#q$6&Gzs zOQb$6c+p)(%}|ckSUO5oj#y$e&ECWt@f-4doz* zIx1slT4Jk2zG8ag4f#q4ar^e^)(z97AHA56sC*Q2HeWjZ%lNf9fUc3HU)Q=j*a^IO zD*D;lJ~~240w4eh=WTXdbu^E#_N#j5u#)qHTUa#QvMbV=GE%7K%%j$^Wd!(~cd0Sm zP9z7h8EmVrTc~0AnvVu0p?Vqom>&L!4CZms!{BqH(q4;0W))LGhrti|=Hh(JbNFHT z2gXM9+uZ-=>1QjfpW@kq+eb}OMiYaPR!{@IVlWU&ITJ5@zpA|J2rhC6nIvx4#0vXD z`;^+bUnXErWe}J58N}r{t(=HHl^T}ysez5C49={rW(HHBTkRwg3zI?HIs0@1^!6!b zD`lTjq%B-nU3cKMVh+8SNnA?Vys5~$mix#&r&}|zn?60@muXv_W!inq!!j+^F5irR zaTEW7t~gX4&=s@zh_2>Q4NJKl%H7|Ga`#s$_YP6+U>IwvIa0FADRyY)lsj~Dr9(3( z?+_04-VV+7>CkMoLwnSrX5S8x9{N;9=;*Rj9ic~;bw=puvXhPw>nXh*+S#W=JF6YK zSshCIc8GC1l@86Ha)%zObZGwM9byfxw?k}{F}c@~T{ETZf*ZHf9T7>o2&c{UjnCYX~NGUlSBoLmGY-jA)wO2wa8 zq{KRxDI^X9CFbA1JOs(TRe^vu`C`pSsHPSi&OL#K31BkkyV%1--rX4QZd?Xt;@wr8 zXc>CQ%cxW_^>bGZ5**`Ky%3Hi+vgNj2-h(wFrWXS0l|8ZDh@h$$3 zEj&KuTE_6rtteyo3d_7Qp0bQ;J3@((#b^D`_n#*I$fEov(nfP&uyqvye&_zirp@OK z5#eV6e#;fx_ncK*S3mcEJL~K<=RD8fVKMp_S8iHGkxsu2{2#~GV2&yy9i*?&3iG1w_0H!ekg~YprQQLet3j$qN*zhUFEf7xt@#7X@x}J2Ks#E67AL}ECA_EigO)JmzJxbn)04SHWYcuu)4C?M zlIR+iV8_Ek*kB^XiuD9D4OmY|5ogprmsT?biyM53V9rQ-^~>?bI30L2M+eTPl}xyW zO80-cQN-8cUIJI6TFMm@3>B|es57TH{h#%>3QJK%`Ah5N`mFM`<*VYY|H4}#Oz|vD z#)rIhHs@_?!WOOHSZ}aDmS&M-+RY*AJxVT;4kGfw!j4_geChtKebpX@W{N7=asr@AsBv80Hl zGeRXyQVt3#<8X@TZV5y3Dm$ULA)ZMmqfe>Knli=XUbc4l(OqeKuwM3Byca8PYY$r~ z8BL5(L9=uZq_z|afWhD89|Fj81zB#*%V zqc5CKju;Jamhp;0;Nox!fvvh^7%D6U6LjzrgFEXyCiI0tsD<0?Mj!F@1V3KG@V`C3y54NH7ki|4o&SG(!O=))Mac(5n;gD7ocm=w?5XlMF`c|ji%M9Gx!?^#w#8An8dy3ZYwL3KZ@0ZgF(6&@GxQL$?+xp<81X1=IN%CJqQus3IczB^wijCphV3o2&b)br)RjJAfj2U-S;%P}TSTuW#R)&^V2g;( zKJOMY)?}ZsK$L^FBpjGxJl0W+abX=w+ZDC=0ja}u@`$O&IJi>AiQlNnXl(0nEJ%%(y7OA0 zkpa8NMyOBMyj|B7m+7EGe^+0JM~wUx0d z13Q7gTI}>(7v1^nFy8K%J_rcor1G+YLLE+^&N5J|7UJnFSLv8x4HFBv*zR#>Q7$Ef zQaxIHV2VxKc22hziSmr)2aGKekt5BDK9PvU$zZ1|71&uu><#sF8dfa0&U77-@)J5D z{l;R=_KO&Cx0*`?ufjf0oaS8^_HHeRRu-JB2uHG=P)|6teiG}Bv{bl)T?e^9dPbW2 zQ>gEC9)lJaTVhbtyW+0SJSDX0y)NIW)|xB;bhvLwSS0|I6DI!++2gvtcX7HUJoFSN zUKs^?8n9i^3)?8tXptz;&Y+ybpm?0Q+}LpFWSwaF39&NZ_>CltOtQ9|Xj+YEO8SR} z+N5WED{Xs4M-LAs(F)^JFV1iDmRTL; z^@fac{!)L+^S%OdR@Erbhm4v(p%XItNfG5?^NVzcjCM%%KnP}oR7YJHVudhwdcwTX z$xIQd$xI_u_M@7ZtRtcm-*Alr&0RU~$wrmz5`mUkx`SGOYHH zAW~3lL8Jl2FwcpCNVAf$&$SqCj;whUCrh4fN*>XbVAA8d!sv!p{MP2LhT#`y>=5`T zZw;K_Vl2QbHxo%Gh;)XWfqNx2hW*$fEvym7&>C?;q%8{~wE=8}AkxbCbqA52aQvA0 z_NLf=43C=?kuZ-Woe8NjN0LHhkr6(gNCuKNMVmv2M`grU6wr!|xW$5(0|*rp$jN$C zU%^5;%581VYGtvN$a1Fk9>HRs*!N6PiwI#|_5Bgiu! zb$Xso$~=$EnBDSCapmhHv|dMnriGOhDBE?;SgAYe6xXefI@RD4)?_bMqfQ-B`0{$x z=^WHy3QzD@2hxKSjr5=__hBdMl(8-ISm0|3TAQgtWyIvpRB=mC0uxSf zSj$S`%&M5z<49Yz$x6+1nnZR*BzN$lM?uMCF{ocM(q6fvtt9#PxTQl2j+*22N8S4Vg0 z%F6#vT~}^~>A9ZaMGKi!ck4GcmIzv>V%r1+;kyZFL!^jWuRMf^+REh99Z}nnNu}}t zKlpgsbT)0T=uAB*Q(>jzjE-Iv>>ekXY@RugGP}b{NGO8(#8T*MX7}9Wd7;aqXa#}J z4g$r|_bRMC1Gg(EtO}+t1*fWi&RDxP%A*AFcD+D|bd|^O+PW7OGoV<*2wd*ulZ=ph zP_LWbF0B|IFTsMcqZXjMyw>1jwxHJcv7pum;1N}>`)Ab}8~wGO7c54uoELN+4!s$3 z>TE5-SEf9U&f*Q`2JHy|JhEK#lBM3W3OYeFmpeSfW&EEae2Gsh#i=RbnGi8l*eMMl ziS^>@sPNNq7u=>4-R4r!c2BQHo9fXPVB@E|5D;JaEa~MCfu=5a*X>AKC+tIa$7k^}N&>eYg!OoqZUD6!1R`Ig31FcPAejU+^UbZpI2n3U$f(o{A&sXJVkF7*51-S%E9T?z((O7dvOUS zJYEl@KLH)ySi#|O!st&zhb%z% z;&73u^T&+Cn;!=b?d&3ONbK2Sbl5mG94?$P4j*AFf{P`C-`e`1?Qn_^u!ScO7V;%)55B zB^xjQai2JIwmZRK_dkLYXO4WSJi%agxPF4c!TZWbbIslpXJ+r^@X{yh$QeULakli3 ze||?8OueNOqd$5O!i6=bfBBQ+-~Q@-Kf33v z%@Mpdee)X+z2*K-e&Xl1abiG(E=JL}j{W$akNo!^EqsSBRKq*I@&})}{cYR-;6J(w zs%J5&hU!^NzJ`PE{gdzh;G3U)+iogV4X=Cjvo{@Hc-!6!Po)Oy#Har7+qb>_mLDGa zsfXeCUq5)`n?CgM1DsoM(oQ@-PC_#6ygWpzh+X#fWGau4(M!@eiAdniz8dBX&Q(Ty zumW;GNg`BG9)h-WFm}I51qM+=$mSz;c*mM z_Sfzl1^u`{=3nmujKa_45ZKyoOsBuaD^W3!?ZA|=jM|A?5cwMC4!C2EY?U`D9;_7P z5_5l9DPWP5{iBtF4Ju%puj+^ZllGz)A#iEAF`e`_x<0ztZJ3&g$E_pUlH~xMNOs6V zi=Q_Z@pTHk-r*WhFp)f;lNIRi#bUIFe)!Fq$e;YA!mV1tihE3fMCM3iIuaN}0tZoc)0_qu;&V<9a-MZ6V$>*}u#M(c5#vfh-YH<@DR9S6+8fXY1@2T{ z6^NKxo1+(T$40do#zMIuF3uBW&)=H!TU46e^NEtgv;q7{gu=C+H`Kbpv|TVUV;gLW zn;@k{Tn9{w9&@}++B4-jabIYqI^2FR@c2$nic8#to=hbKcw~Q~AEvis8rYG> z1K4h>j&2C&S~xzeooLY*i}ejhxaDak{m3=WLiEdk7B}8i4(KZkP?8^He`-euf^Q`v zpgTD)fcq;r0VZ87c-%kQni0Ej>I=pyWKa)fOSOWg9umxL< z6KmPL^~=a>8gYV=XF8kJ_MEW>M_teg#{dlKButw4 zZCBTpG24e)Eoh3+4VtS7kwWL7jN5~Uh1lNwWCs# zpQbm0=85RP5>LV9|8WR?l^l^(gcg=csvGV$5ep2MhkRgyU7awbO3u}=;fX8BQ7~bBlVr|E%-GN>7H^z88RG+{4q<4RcFKAt5c1OLIg_Zx z1tOJh-tc==H^eI^W7FBskJeB=xG7r2rL`$q!NtUg6nxHb(-;%GhBEAt$!LgoSS!)F^jIM322482Wppw+gO^urQ$}-vtUbBR>~2dK z0AbpCE8wn?w85cIrP8p#6rZ|h0tK;8^i11wY;aDgrme%3!wNlrHw)ZO_eIeC6teWi{pYrrVS4{AO6}y=Q7nCb@c+u!;9#JtzqC_0-eGM<{#>%nR z{5+Qy3ghN{mDw0d=ej2@wGe*owm`F<%#Q++wKX>cRN&_m13~2mnabV7Q(}Uk%HQhPji9MG>g>~E(5}01Jtiu^jGq=pW@BC}q96Q9v z!XTix+<8fZ*>`cy&~%=%pd1%Vl`hdVf;|Q7|HXd6(poI)_8}=3YRzvN}QP19B3rOL%=!;PF$0Q zbd5@7FkG{45S=byW8|b}7+bdk-N+}sl;%M!f`wE(B2t~r!$O~R>IrLMS}O>&!v6yr z)e)QZE^^HZgHJFwKy&$^v52U_k*(n%blr-rdxo*H7#a>;4`n&0s*~U+&4-9U(-oRJ zZ!_f0Eu#9UuB55h>d9Jk%y;Qf<(A zj)olb9d(+F6rx-gPS%r!QXRbIveq!_V8YSCI$KCN3cRVd|EEz+Gwg_-zu!A8wxNzL zIcJnJf0nNpi{fZ<!cc}}A)g3{dth3ot z+Ri49uuASy9GYgE6gxs;G3vCG`7x5`H&?7!x$+EF&(JiP5aWXAvD){?&6|~RAaD5I z0pp|3*qdPSqg0C8#5R~!?dFo^s#RxjaFHsVX{%B`@4#ez8P<2L&=*T4uFq%MI6ujZ z%J8#Qt!-LWvZJlKRkFQJXbs!g#9jyebA^`vB#_Qc3g+U09~dBqC$|*`lTJd}Bd+-1v&u-;V%`UUZ8fWBVB*FsRKr{Xc* zdl|5z%q{4O;<@*?Hz)gauho4c@QKf+23xidq02?eQfHVQc_vkxpD6UwS z9=TKtsOzJLE>#@GhUhz&N}n!vnv=RXqFEJco~sPzj?|Dn5|W)3DqxBqD?0$@@3_nd zjbSBx?J`VTJPrAh3B`N7R=11*eYfAg;FpYv2YHRaNga)uUHuB6b6ag1`KZ}0!y>c& zmyI(D%nFw&+JkK9mnrxME%Y+2pQBb?rs$9L(UHr@mcWu-Q%QvB&C~m_`s_12ul8qk zpW3fwiWqh7e0qgfcRyWdB0T@;7KFjw%}@73qcAuP5m)0?6q-}u)uAw7aaf)4YUX)W zcCqKxW;d_C_2~qjKzqikbh4XQn}Ju?s8V><*2>{k*=zSJI*54wE?%8?#Z_KCg>zJtC{Cj5Lo3^!CT{1BTi1Iq!W92R&te=C!MM-Hp@h}-Z;M6_qiX2hzG@7wkwix>Q5qL=$TGrQ^e0A_@n}DTpZYn=@2`9^Id<;!aLsfJ^jryaN4&6_Z(z zP?A`^vS;sQ8r74?AmqlvWt!G$|3T_ww9|^%Yf1uIxHyt{avc8!i>o%J^8QhVZ^07* z-?;;75hfbe(xhqTO+w-(H>XE&%9Wz?3=^3RJ%ihqDsZo|1(7-o`2}%qN0$)3wuQ2;h*#sg@;^mRTR#- zqN*r7;EJlEaK9_6io(6Fs45C~QM9Ni-1WOB5QTzwF;O_nvr<%5M4lX|6K!jSyLOlypEwNj3w#DK%k^_p@MKyPp!j5}c;VA8(y_dDef^O9=Y1O!Ge`VUX z3Dg-T)rrW8Gn@*1xuH=P7h%(~;4kO-DW;9hv!Q&gQ3L=TCz)IwDxZ`IV+rvk~N##3kD5 z$-aFk;`esp!>(Xj-Wj;YODf|{dZAne!?y=Dx z#GrTSrylZV>VmE)Rc5wIxzcZ^N8xMZhZm3{I(L?}dOm;QMPr^IJLg!>O)7>O(l|IN zmwnY^rUcT?z2Y1c=H__vKm!VaT?cLLBA~4WGGYVOW(4MC(AJsF` z-kYy!w)IyQ2aOnl%T{}UI{Kq;%KC;Nr`U=A}2mlnU`QrF9? z;WRE2)hsd&@-sA*58B;M0u?qy-+(68N8h^C`y#>sQ}%#)N=W-5v&85QeEPmk7-sz; zMKwmBvu@P!wyr~P_RIu zo2m&Gyh6bQ3*I905=nZUz)Q5#Ld8$Z{%V!xi^sP1ojSzQmL|>YhL6dBrQ z;e13rOxPKf!|Kw2yoe7}ts?Gs>`tN_17fq@%cfRYi;a znK&IQmj0fKTk_MvEjeb2l{4~Zz4El%D^I(;@`SQvj>fyZ5{1%aN)!%AQ=)J@%E(`4 zRRxdc7oA75lpXNTWn`BtMWHAY{i8$GcvE^NXx3Fr9uW4kudoY7j9UM6qR*#DBloG+ z#ZK+4KK5ii4WZPnC74z>|M{RV&y@OdDO&WE+FF7i=VN@@&;RV)IK9pt`QEETewQ2afo|a<%3@Se0y(|ik2b2Y zxpWv!8}0iw+9u*lN#yj^UEelT)Fp~0Ba-E6?x!DwR$XB#o(7HK(kFEU)fl{MUa=X- zDcs+xp~Dyulch@e-XotBTD|DSh}jMmCfHYD0+Fcs=J5v$ao#~M-N-rNOX4MP!ea>@ zF)YCYhNXj^C*TF+39z@sVGXkJ6C=8uzk4bRUgK<_L87yOH>k04OKA(M)Zbulv5wb; zt=cSw=<)B?#Gxb-5->cf3PU||o()5x#9}K*E|Z*27TQB@Sp=@SQJpljhgEUtC17Z; zOBjM^=PPCRpZQ9ePUI^MeFOp7PI-b$ma(ncPFFcqmceamEYs~0UEP;PtXEZUXsZve zpiQ{t7*84HQjL?5r^GeLYlNNA!-C03b8Ma|Ies)aIFB(TM;38#mZ2OtII(Ug{n`-s z2PZd0NLX`x&QC7p_(b)Yg#FAp8XTY{5i$gfoRg$79KC>TX(@JG0^$BKpB(6Yd%sAP^yV*g7I#1&tMhf<0D&FuIH9!c z=7c9*S{lD-mDBRRR2B}T2%M(eWZr;p&?Vp(lm*j!{K5bW1k5WSasj?Mx(MHt=8W;j zoa2wdyy3;U_+iR#?`L`7HB{8nd}|v(*JSiH`HF_j8TfVGBIv3nV2B(6d9^c>tMbq0ba6hbyQS2^lvy7UfnnJy zFlCr3Hbh^((CK(zy|AkCdhys_$FqmNZ`Fz1S;#Whs$!MpT9>?s8U52+N?p$?VQhlF zXAwTlS^Q(jk-9<`R(;%UR>q#Q?wj+z7*C z>(RD2;Kw_lC#>}1UvWP9@W3Vm=E)r?bSbUkm0>_9q7S|@MAkrdl)HhPV12-}CEj0$ z6W`(70clMe)0A_Dy`_=C2S!|R>xMSc@%HJ78@BuPnI;JQFo90RCpg+AvTe(*D(zI3pNmH#FX#9vW*)FF7ZAC{Qj|wsfB$|fQ`|^_ zf+^Q!G3Q#a*bxa?X>-OPfRQ~)>I=3mluT?2!k?SoK*|hHQrh9+-0Y2Tr+Q0;zbv&V z^Ik`JQ~ccHK5vv-MeAf*1*w?`s_)h+MnFII1@iz~!B^RFWE07;Ro$;yKzMJo3F4(E z(oL^gKy6g4ex9~#<|xi=bf!G*OwZiTblj2J{j#ch zP+RdU*yKg_O6hHEAhA*93|ZTZUgQ#M=0opzA8ac;u_v}c{vloEGu4&tYNU_Tj(G_z zHpy=y+bh>G6I!-cg*0=Fs&YzhR#qsssN3}I{27vZgfT_lpm*Za3s1gMn#xVlTdASA zS-$280t+`qf|^Ii*;{{$9_@CIe&P4plOuv<19s|jhNP~XV>hR(q&m9+_v(}V=DBur zmzTUzamW{z>%`0oZ9_YI5=yiy=XIPJJ&LdPBfj0{nUR~4xM8Q+B~!^%j=njc6yN{l zFMm0>jnn2*h2B!u7?0h?_jJMG2Z%^i^6s zLn=TwU5R|z*Aa2>?0|T>Q4HGt4z}o&A6ll_o)4)JoM_{#GOw}+1(^-BG=`qp{WkMJ z4z$8%9}QF*2I`LH*m4g5m{=ZqX~)e16lIZ>^)#x|l>y?_6@Zb% z&ZI)D4)->gjb)}8aPHbgV{Am5V0&jQ4IxtgY6-!mD!dsC*$tV{Vvds)W|W251;q2h zZeB3ZW_#S?hEB%QVbh-kX~;YYY>hFUT!H3<2io-xru8e}7F4 zkBXy}L{tbFR#*3ddb`0^jFlLQvd4z**5mqma8$Fo5$RwU0(@_-WFV9~|0`}Xw7kC~Y{qNjzC z4>r^Iy1`cugst2QNtv%9kEf5n^M`N#;aea4{M*SQaRjM5eaBb6@~y-7eE6nMMw_E~ z6+F80&hO0M^!D%l-e86?yhi3tzcXX=ANd!n&yL*AG|spQCIpZ z9xxBRc#VK&-{Qcls1zHW0*Imb&6kbq)Fta!ao2zQ`V5v^@tfnYY-$4Cg!&Ne4r5{t z7YFX-4Ky;TO8!?qd}Wcmk_A%^x5|f}yQaOQNUq*CK1#Rv{X#w+%9mW(mWHQF^P%E5 z_5X9%P~lK97d;pKZYUq+4U@j3eC+_CjuFxrT9ah+Le+TVoG3THb zjbNau+XH#>D)zuN^MMzy;V0Yi-Ot90IUt@1VVMq_jUte3-q0xkH_`R%&ds0@0kF&F z!lZ{gsRoliVgiPJ4txRN0gRqq(@wGCuYw==akWKMD78E&9>{grU~`$X6dj<#YtXp1hYb|*Ha5OVcE}^O3l1ze zH)(s!_4v2UikjhGHrb6Td%bAFw0E|+HMU8EXKB*<;gU-T_r=TtUuJ)JJ?}EY79o%J z&{A6p#yEa00WuJYeMa|>MM3>_-6n3rszI#KSx^A`sm~gCcmt&x<{q9-Uj$RQ!4?ui z9a`*@Ksr>`8tdq3^l}5)eUaU5TLvJ8U5#St7BtQdlmd@)0N4p#!Y=758dj^ z8D+jb@Izb=;vIBsyES8aw;U3hkVxE;8~~(Z;oW@3Av(GzKighiA68YH*yYbXBQ>k* zVfh|zXY>2a%)%g9wbb8&mu}Ye$T!P}$6_8D|M1W{4QtHIehEW#Mz7)pVYhQqY`^*L z8Ek8KwLQ27#Q~<#V;F4{d*flC-R^}o6iUV=KI6|w_DK=kNcPP+jTjQ=f_9R9%t$=R z-s}qXMYiDX^$LnNkb*D$*b%n@;>L!_R%Swx3B}|iVs?~IfgdZ!IT8a(OJy~}heVle zQ<4u|hO&E&69yo(HV0^MLC~<9m24A|U!8yK3T;Ml(rCgSl0FlW#FAZ~Ls}E2%&t;q zH91teO398gQe;$5B-RL^Flz&hD48`26aw8n2ew97mQO-?KIDZhjkSuE5=sqCTn(5$ zmE%xjxEIW5pm*y!r?GV6aT=C1Dq~cNLn<#>GG@|9_VE6+hIfu1_VGdIp%MvF)y+&+ zCM5W)DsKFSs`#<2ZChZnUB2ue4?>XJ!NSiDngd?{&?jMwC8FVne+1!%q))9PSJ^|= zGCu4sbF#l$BXD$g_n=_v)7`@ctC#D^6kp;+oi}%?1Qd4xQe#@pSxz8{Dq2PQJg7?Z z0Lsf9$L^c4fEs%0MG?#7i%24kQPuiX)A(s@v%XQOdRdcR?v2%LG;|~6mBAhsB!dAG zIIRZBpoe7eB#?BDigE3jhA$53fddrnZ)|hw4Tfqjs%I9VtQ}R#dh1Zqx~>^E-Or>I ztw^Q@9xf~osm&V6i=jWr&**O}@R`deDOO(PQ6OgxNFn!uw!)_q5otIa+aqz>1CUre zJ}A}EY3;0H)>As!vSux%)1akv!uQTnN}1A$wPAjJL`uzg%c1FF<}0wY)r5;B$NGST z252Gm7-DbbRoc6N`!M5Mw2@I&v58b5tSE1aVwlt->0@4vk%$*7-vX2&2NGX82U6^F zg~XQBsXXEc0k$qt+M?{MP6AHP-uc0|yz@J^yyKe9(dA(5XSdvT?~Pyl;^+RDY3ovc zSL_}kv|{#b1~G&s9}IzX<5+^~Chk{;2oP!d=Oc--x~Z3s;>rHmzmc1a zAIFno5L6UD_|!c!(!>UxR4St9VEXWWT4)%rspM(sSy3LDM(gJPVU4mGfD_xY8(j}& zP_cX~gK8LHF{Exi45TW_$HBRaCqvCcSAu?SJ_Hn-5}p^)y5vUv+MFJf#ty`rfE+A5 zVK{q}K*Wk5(D~Z-XpYf@2{B9oCd9SOAIu;W$UT75kv}94)WBxn20S z&_b3gfPxa7CBw%Ed_9@|{g1wJ_ebCPkv~1#k=8Fi_=7LL?!F^mI`ecX>&xn$Bb+I3 z>*#Qx)MTpIm|X-WQ^}LkCCQWpOQLUJF-cZ(4)dOIj%(*UFE20XC&^|~FUg8%$BgFZzS`qu{pKODfl&oaf223@@95Fhp$;HAg-*xi%xF>9t zLVd9(<-S+0c&+{jLbDS%s^E zOy=jHSNpXbYF;1xMbah%(kB#ZOro#_gxF+EH%aLQpyx*zrFl9T#S|>nFNO!tChwv} zb`uI3oYzL}HA!dQ8joq8!T8=saE%mMwm_Tu*?5eA?FiVgH> zWCKHJn$?p!L+piQXGL6e*42?cpdl=lSVBm(q!0g+ublfNDgH=fUL0d?j@W1jBm(q>cFMJ)=c6PcM$#sOIUNQ$Yph1NvP7+C%GM^`2fMrwG5t#V{Q@2=m{#c}TgI zu3vdLc;`I1QKgVHb(xT3OIk>(%WCPb+G(X%!Aa@wrEu1{aPcKxYaZH|`8bw8SMFMV z$k)qjd);g16pnL5jlG6b7}6?VgJPVQ4`AK8Gc$RuXTc>&GW60V`IESl>Ud*E@2>kf zCYbaq6p-_?f=#@iRb*xf(;>iAMDbYEWx&_QUbR=p{v_2?IjrbgaB`L@R}z*>3vYRs zV;~An0Zt}$^gXhx8J7zNb7c66J>5Isad!OAjR{cAK(JTN7&lYS3Ko~?Ak_Q}R)poa zj>y_cLN=7ySU(yCo-5OA8+f-KBFFhkCo%DME5vEbU8=W*V9kt zegT{ZH7k?K&P5DmU%Z>@Dp_x-!OuToS6%GrKu>$$q2HR zgcGn_B|5Fh29_cxO({b2<4vo-E4TH&u-%^^Ubv6!wI$x2hZ=$fe(2V6VBHt#uiS9bDT2ys|SIzw2+XA1tv zuO$N=nLJyugyUk}Ce>T)di#AcWG>(q_sw}+-p+L+Ofp}+p!WnbHutV5z2A%r&84hDKE? z7!(z$V^CCNxB+1#<$&;#q4;EQmIB5?WFGy!g7*WJa$LmbT%}w<go4A}` z)#%FkRn6P#{HiSN$*)St4nEY6+0YQK6DzsljIJNh$pp^6EJ*QjTy1wBWT4K9e~IP6 z;(7;_IH&7e1HUT4LH5u(d_4kTR%t}7ySOxW2&c}k+LT|lX?|52=A+pJFT#zIP0p{{ zlwTF>-Uo@uVrmx;+$(&OH*!Yz^=jCIq4&?|dFJ%-XjDJ`&df^z` zJP>}?6lA>pQ-EHqH34IOIzQL**=z!X0lXXse1OhN$i{Qs?VhAPFaZZP^XLUgx_$4v ze}-C%=D4z(Ki&oez1pia64e@EVr~|{x-CbTH;Q-q)|ZdtxM5w3bjsbbW|Zi^@Il=3 z0dl?P1D4(m^KRy1T)4qZGi3IpozVr4v6Ogk=EXOjA+%omcc}BYE~X7kz8@WJx7y> zi(hBaK-c$t!oD#^g3$M<%oF;o?!|)gE32o#65Gq(q z2e+mh=vva|TGLuwT>4sfh=3tNJbkv}2A;Cdsxs;Kp$dG24s&LSw80d!+MZLYUQ)38AT7QX@zry4PSfy5l|f%zjay zuR}CRyS^>`0zMCuet`@JyTS!Udc`hR+VG|qMatj2Ikk1A0Fc2P+fHj>PzGMxC!tIJ;f>HEMw+7{M3V@sSEUGOu`c1Oc8M zx8G~5_xRaSNZ27Hn1qaqSD?HUnoYDDVC1=L?0PM6mQfm~ywnjinywcSG$-iT0S9=O zoauDz&|~Zv6L6QD$&O3HAVm+p=WebxAKhhg^Ytb-^?^|gV_)Ue8=)AH;szV*_0gLW z$Eg8RoL~3&(Qy1EXxJec!+NP`;&jAqFB+&o^5w7-R+b?fH;06a#PiBp*TpPQ;3AkWD%+P zQy)j|3UIZWyzs2aS@D~byTppHrsf|3bq&cAbW6tWF#WjdvPaxpqY(u1hGextV#Duu zBui9EU_4L`|JSGtL0t~NAaim$Z=jU05>(1EHiC7C$m5u&cO~K`1bCRWygZ|C^)dvg zQuSBoseK*}oI(29hQ;vn!Hx*S!C*5;-k5YlhIm8Ia{=fk3QG`!T(fv^mP1UGmW9lk zyy>7T3z;}6#6Metg~l#rKo~YX1*GpPl?5AsM|dne@mEy$Ih)lCQ>VpiI>^Hj2=d-h zz!Re?4LGS#W#GrCFgCO>WR zm3?ndYV?%Kr?2U^!@Pc|WZb(C9y{|I(=t)xrSkfjxL8zO(hjUuGOd7+KICcXMBG}O zWmcheXk(y-jlpf};6^oZG%`^yuPZ%H7Afkr^Q)?Zjb^VItrr7JEB3N=Lkb&N_i=0Ovp&_ycDWp@YL+Z8pqBw4EeUu*{g2U zW8k&sOFOE9lUdD%EdiB#cWPXGs-na|TrwUsW;G?o8x9&T5Wy z>#XKPx6W#YQcJ7(xN~SMYBiIH?6}%Kq1D`d0AP>RJa-iJPCP43YX`=wx0^0IKT+o}h20Cn^0;r>{jQ6P?J) zAcZyJlCd(bG}#%RnJRD9Z#PH2$4A($@K2-Sf6Y_j-@UR|=C~E?ksTepEzk|mp8&cs z?x@qvJr%kEk)oRgsG}d&EAij9DaOsb5d{1{*TnXErD+E z5^iZXDs*EL0Nxgk(lNSe^w5pjc#M@e9r|-)MPQtUvoluv6q-^QE2#4EkCoV`#^BX~ z@{HWW;GXdVgX4eDctu@qu?mAPGEfVDF9S9A;Zq!_z~GAx6bonaBeN81dEZIK;@5$z zMucR*YzP<_d2w6@b#q{3;@1-rd1zVbE%rF2o;u}XAsa;}hBLRgPV#(ExEjf$<;*yQ z-2GjH-3>aK#Ggkp*SfOZ@Rc`eRB?z^hnnP{Q$a=Yv!dRpF4M50-q8HkP%6Pv^0VbY z9Eq$V97)S5n-ucF$Zuj378PJWS>Tm@O>78WK&!wb1{NBj3fQ@&BH)+kOWxQJD|l-%re`c!0b7WBpyp0ve5j>vM`I&D8fl9D200Zc z4Kz4Y-CzzQ@M~NZCl!wt)=A&O@+7?p)*FVoI~x2 z%_@4r$dPu%X_cyZ4#jaRUmaCQza-Hy0{L`(BqqX@>+yJe$ebB0mxcquY)HmoRzey$ zmdYN7)4`}~hl79!Dr>u>9rpwXmiQ+n?YJk<&QkxRq@7reY-QIjH*||X)Si##Bia4$ z*WlRd;$Y9QW9Uk5N-$iS`shEUx>kDxo^xl94O$6CLx4BA-_w0_Cu-4;f7M(4xo>`iFB|r?uKK^Hd+Sj@ouKhEjWi$iXZXF^RE& z!lGz3h}@{tFLpS~lEg3?o3TJxIyh6rxTID94K57@8r2<;-W8-z9(8_NM>RAmO75W< zU*1D8zPvxZoYzY)M1eXB2pQBmJ+hhTA{&I)>5z@=$j;`2f0AUgu=a@}8*|iqvIzns z&_gLl_I3q6oOG_N(+%xGWJ=VivnWD+bfsUjmVMC{Y=&t8eogGO{&GzC8eEoJLwGmZ$xZZnPO?Uda4%hQ) ztWH2rJx!G-pr;y;Z~}U&00|k(Yuk$9PbR8okLJ?O(MkK!6k5iVA{TW6IKeob6VOw7 zNz9E^Tr9KhFvRl55(=9Zos-d1PJC@^DSUyXpe`^4qi$XFTv18NW|8@#rUvt zLu@793mC6K&ERtFIEP04V@dPoZT`r3YRR`1iuUs~5~*T}mZ`|mS}1}d z1yBhHQG+>3w~G@TH>M!okHrqw?^O$Eb5wj*r;92xGOl!6Wk$zC<$DTKWS*OHweS~+ z!nRE~ER~+}%cbShUoI7Bj2W@xMV$SW={RoO%27lZAQQmGR*hEm5O+{R@sxm0dPdT> z5u-XCyL)Daem(YzJ_j9%lL7_{cM5w+;i*4`y`*p)Lgz=%1_US^AmJ?$!9@TmmN_2kpz{Ym9aNdA);$SGXrm?MEK39w*tTl6wOa} z$hB!HsggO|Pr(yB*p`z9@5MAqx=_U_raGLIltfzDG+J;X2YeX9=zobBp`vpn`;JB@ zByYZR=q500B`N!y?e#;XuT>BcP6&y5WLzW;V3_;{i=S?Uf6q-e7Z$dA=5Uxm`A=ZbEHzjLnE6E<2V=!%$VF^IcY7zZ%+8Uq)sH@p=m2}LdS|Adnut`T50LW5PZar;ZdbG)WubXV zBaPyO?m+^4n}bk}i#R`ul_$l(QxPb{^P(MTit>YrLAZ2@^-<XzX=-EM}+A;KHOgMW%q`xcG@Ic#A}qXC7}pIR~`k{A}@4VLQ-k!OV%9^Vd4h z=xZOeuT>xTA*fZ@I?w$&my7L;(>i5#%Rv*W@*L#VMozN{LZ#J2=9=IT6sa(-o$Nzu zqEj~!BuL;I@NB?g=!*d%7}JUWuF)7>84`krdy3J+BD^$@FW!|K_(YeEj$BAD8Penf}r}_kHB6e|Pr} zZ@x}JzDaSfmRi6CkKX-(xBcBs*Z<(=zkxRJBv0S)%{Slwd;5O!z2A|iF%e>MIg1)` zE}K(@Om@%30SiWJ!ZZJ?IKI5opz`8E#`_c=jXil8~3PBLg-wW5D1XQQJo#2RVcJ} z56y(~k2RBK=iF{~G9+#~Nv7)mY((13zm2x(4Dw%Jhg?U4?+CUwRut(UG}|;a4GbWG zp$i6G!rE{D`^iTENR?}OV5Or4MVBNFjrN+uf)Wv^9G13Jd)g3`tZWlYk%POz&5@)7 zbE)43WNP`SS6B<|T+~Kp9Zh+;gomUc;)aGB#kls`st^Ck_n}#gYnI~G0aGAj0GGB2 zB=%baz|2fa*v@Yz?*SPlsv&il>N$a8t8V(B`3=}Ak$cGOzhDe|}QyEIZ#O-~Y;URvVysJof|B{r-< zYW0kk29Hc!k!3w$CpGz=lw#15bFpn-hImtjOrF9&5s_}%XWN45={T4Ct|t_&zW01J zKn<$2c{NV9gsF8rNvBRY^!Q)UY=VlBmb0FD(!wl9jhcQAffoC&lRXFuK!e_N>w`J@aE zKpRJi(OyEQ?Q4X{rMn?lJ#K_bqA^}m z+l=2SLhE5PQ(dCoxoxltf|XG8WnQUcfqBKU+8b17THH5XY>OYa!?*#w#+Ajdh(I;D z;M7w?SvFKGp{5%IP+U7AZa4gaxSD=FI+)|F4niQ8%pSObVZ+Ns3OxKn41i|Yj?b$zX}Q5JdZ#Y$+`@-} zA0|Zq?NC!P%FM@wb4$tz8@4sHP_1`*;qBsujT}627f^KC(lo^|+H8gYm0z0ZxvaLd z!Xy&HxEI;i990}1#fm?vuF`q6?mTt?5june#{k+Wzt2w;p;L@yZ+g4+-@qtl-mAi; z*;n6Tg+NC6TdXk4K4f`&9KgjNTH*5SJsdQqPTC%yKeoap**9FF0LJA<^SYa84%Kzk0 zNImQ(Qe{XHIin(x*T7~FPPOu}g(UA#sTcEya+lnLZf7~ndHy5MN z)s8+zroxYWvK6H&nd<+q$a@Io@lmWpNPnWmV$fJC3m=!vg=FO8EIzGcVT==`dtf1B z0wf@!ojpYFq0lND$nzWeEAnmise!z$oI<4xZ+pM|*+BNJ$bIa6Mw+rUodYuyZ@XLP z&rYOA=ddKczjL_U<{Z9g?7Js zn&3W0?6w@Zvo&x}3A-%n2wWxs5yQ7n6Wqs$U9vC=yT?vnGT`GBxL#cS)oFtJ7_qBZ zAA$SDDlud(?ytXONRSNeVTm%bmsJ2hc6tD79+3usz_hg@rhTVPa3J9}G!Dywq%y4? znW}<>avH=y&>-Z8LW4kvD?CoB2p4G`gy%aAf`ezA2En{mDiNfn>sBHLoe}}=dzA>l z>ro=4p~mZ?mebr#iCB7iN`#icf3MPpGhH=GLTLQCKRoyHi)5 zaP`Cn?uk~Y_p75PR;Yg};x3xmfm=-NaP(vHx){pd<+N<4CjY|T9L)aKY1yLh|EVT- z)Z{n24N&FgDxH{-I1>-qw@10gv)y+K$>bB&rWO(lHQERVvJEz}Ta}0k?S)@^Y_-=G z^m_u4MSLd4)7~vw=YN;S zwM{&3#P^BIYNJQS^H}$dVn>-uRhG^iS!?_r7r8eG)2$TX;)sj+N39t}uM!AH(>B(LKpDE^_E({Jqt(0$-&*U%MB5J9pBItokc`dLNfjIk!2MB{yhJ}* zF-a&@`&8U~6_s&-#)}O!+igX`z^if|sdf$!cyZ1jYK*N$0Y$u^uf4jz{1C{j?=nPQAd#DMMK3ln#oI12puUioO$b-MO-`##Aj6AwnUw_Y5P@ zx_^%$*B!exQh~~jZ?2OuAQX%ufA=6kX7m)$t)=WQEFe}esjsS_p{)SCu8<$+HpSmX*TT`T^%q@A#94&D+&T%tb}K2m!2 zUOwV1D9=akG^oK#5Gk4goRsH$scZ8Fl@7p7Y~^WEVZ&HQ+15GF=pQ2+y>WoCPeSV7 zg@KZhppiqBNi~Sk!(NQe*Tm?dMa8JN%{Z*eatl9WbcM1a+sD}og8|LWD&F}s{di#^93Wm3uw-wisk1}%bJrW1VA7wY2gIsW5 zUV{Bn1)2i&6@7p%76!IC#bM;Cm}LT}l|`pCQU~z=YrcnP~-^_LFYwY(PN*v>lWhR3sB)3II> z#UVI+h8ge<4byAL49~>vrXHZmz8MA$e$vh+|6c#sR9&&l^dhw6pc0>Lyok0-21(iw zSMPzVKcM#TaqiVs2+(Y|H#Dj7+|MC*%w;IzM(TfDC3QaNA$65iNL|b8j2jg_>UCez zrBZ*D)X{S-2%Ek=97rAV??>t$tDL!5lDh8eq%Nt0|G<&D#fGVOxR?7NRdTN;ZzMiy z@@7s2CsDDeUj6p^l@~S|0~0oi3UoSFRO(m`+cr>@F_N&MBByzIVFQ5LhwgM@ z$&jxoVw56>^zk2(x<+eKTI@!fAX7Lk@>>fa zTvcS!5VT^5DN;yyL;rL#(-x5hrwB{!piuIjSS46c{sB`$;(BPdg1wBE8sh$CKUf*s zY$9#eS!1pYWivtJtd(t4*~YTWbR!f`;Pjwm@3;-2ZoqOngZ9YrOv5CR$`s957>MI7 zTd^J=Fww*dERG`FZ9LqTUT+)aGGWXVk|AW~PXnmhBfv$01%IZItQoVF2J_(;b3cq4 z)(X zc55huKtdUL8Nhh>#exgGQnWWE#v|*Zq0Q0DDbVKRo8};#z{O>-P)Ru%ZXF0HllCp1 zc^!amHwuapgx`Z%8AppTn-p=fw!lCQyJhi0ys5F;}3;RYeu zjgAbOC7v&KN`uj?^aVTb7iz?@ffHO#4s{i-Qu=ksK*_Rw%uFZ*KIT?WA}Un03(H&+ zMke;5RFMe_c>|G<i&Z#kas{hN%ia^{lL_zYy{jF}^z#ay zbxo60CxHZ&cjqdwa^z7+YS0z}9j?3x8wv&L=M^s73y&DvR`!tXFXk9T`$CB*Uq(%+ z`B%6K9r@tm_Zbpc=r@edLVuzM_e*_(p_tKp0ZA@RAh=q|(xaWLv_9eUxR5YM?L4(l zJF|gOEShLExaV&hZMKYT20ElO2kA5&=_nV{-nVY}=0LLF7eX@6N*E3csiaE;j%U zvgv5rAeoM`J9XF{*S62hmkTIs&cDGU zcg!6fbdav%rJO%6T4P`@&(FBz_WVprR^%(QPixPVYTKbeurlMuc9+7N@?CLzxrIq& zmtb@@3uuCxFJ7ZLb@^@M%d|(qIyt^f+h#q&^JOp4?^v4KoAIgYoLOOfxiEbw9$zKo zx_^0${@)(Kl8qB)nPzbVeU6L!A|=t4!PZpX07{@gst~a?m2{O7%ELR*LiD1^csspN z6PJs>ka#Z{C)fjPLIi+uF+QZ(-wIYU&U!(oW*5pR!ZuFmgi==N>Zck~&=nyxI+o}g zPSobSP`|WvVmJfjRp0=}Kqz69XdTU0Q>UGccy>NCzFHW8a`WY`<4|rs=5EEEOWf^e zxi!QEbQB9#0)j%rO8w*z7fSL~miMHYFSP`k&77TWyM(`y^P@w$;tu1qTD+T+@l9L{ zY>u6}!qB3Yytx5<*&Obp5&7<6b&dnpXcY3gg* zW1c}#75ecfvbP_5q9ZQOod5dfFW0K)s?rux=q89vNP@MHjo1{?dPjsh2+>)9V-O0Up!u5 zcF?l1GF*v3pbA(|Q)84bE8^chKWcF&T^Q*e16QmQomlCSx}tUFxiD*t+>*wF!I!P@ zuXL>fxulTepE-vM1C|!&ASCG6&zu(;qQjhO$t0HBrju5I($%sCbmR}G1S#GMhnZH* ziQ3%|52J4L%FwthymPh{N%l4^UKtf*d907lp*sBv|JeFHoHmN;|Cy=Nsk1g1pdA2#4Gk@H{%1b~46XEYKe8ZivsB zjFy2q*7eikUwP@P=Fp_w5R81Lm1sAfUuc-;7@k2tID<7~oqV!`HDjIRdV^JC{g8fF zEWo_Hwx3yhStv|rrJRohJbs2bju(;m}u!%y!VJpCJ3I&Qh zwQaVc;9&~P*bN1bSV83z^lsj$REqXZL7BS*OVp~r0J+z+yO(kY$-m!XdpVnet6R9j z{MnS8EBUCH6dNY!W)NjJ`?(VxqJp`&u;h}CAO=*lj};;)&JMhHR0-NW`u!~Hiov?a zey!MunZdHjK{NRv1e7uj8>vI(*=N+gc-3ZQs^s9CG_`6 zV_oXq5Z#T>k?jAF=;36XftpATarm&V2NUETFV7{~gQ&ZO#E~Hn-I6vpxca&Y(Y?IG zdj|)Lo#o0nAbX)PxPew3cZ?{1Yj2VQp&0?wMK(ns~*_D{S z92Q?XJ`@CJ_cfh@6i6ud%A7qY14_|Q99fW`ZbKZk@eBcbKHyee&>~PbS|}LEQ6w|- zAwN0HuX!a+qAnqjrSvX+p~3{D>R(kXSY0k2pxU$q5oz6xFS*^pNE9=-jc$XynQh;k za3Yq(wM)gBrtfbEUZ7r7pY zrLszC#jwSbZ1xf*Os#f%Z9a%ni&l7vR6~^7!8PrSDwgKlEHkCHArq;O`r0sSbSxN` zr8U|xYgFZRvy&7X42yl`L=zC=_`3pVxNMc}J0>WtJ^u!e%tv9OtQ%I-#?`gkF_O{K z^JQMOrMlyAro{x@M;6p)Q)z{Uf&fWyFGw%5X=z=ZID4H)BC;yOdt zVHY07!15asl=^v%sGP`{P0STO-!t*?jI6k|QII(jWN|}n+;}wrA2w$g*lWzTs_nQm z80fQG;uH<2m*;bFd&Na#)Hspc6+^-+ka?)6E0BP;f0!ePl;zjBm@Xz$h`(X@k_HLt zXs<*#k#uewe1RL88MLi4iO8hMbgysn6{>7}fUlN_Gd)wINDx#n1&m>6XRm`)HKpmt z($_(LiV7Hz9U!A?sr`8oG`a>~Fja`ldG=yG!^KQ7+^!ECx9h}cPKGPU5^Jg(ocIzY z8RJ_7196YfQ-6&t2eY^PK@l!(OfXk$Ok98r_oGzJr6mWsZX8CpFyxpigu9#%L>m@dRXwt^+KZk8@tdUyHY(Xl6YXDqY?@^44 zRso#rqZxEyK;x`7MtbEK>LR(tTbvg-3N1XuesrnOD~fMxXS(iG!2w(0GXlq=^ zc8@Vf_406dtBAR$S`w6Q%jWN(M#~*Gkxa>83n5BAGpEBkjE8{nX36-H~R?Bjg8TogGp8%TcjlZ%! zhYTA-tSzUa2+n0Mtri+q<$kOd8t&y_^M#-~x!6wE)6u@ef1^uoV)fyKW@BEeM z305@>{%iyxmnobeHgbpbCSIGnbbZZV5Twny2CD7B?|$xsU-{gwkFYqRiLWWzV6H)j zjLJj>XK6O8t*jvO<>EmoOM#J>OrN4@DPIBeIetE+BSs_C#%R;L_%Xc3gyu?fB5@>{ zNlu$`)iF)6t|QqyluJzTACW*WXYdE&wh7+_6vLjAoXw77`JhYF=WDu3#`Q+AC)5wr z%w78bd21*?4C;Q9t0>RtDEsa|fSehuv(>)@IfFF2{%l;w=BrZbR12wYaWMl6m0~IX zc8glGTd#*C$ej}xX9b^qnC*>>aAf4rpt+i*Gse%w?TFmz$Ss`IRY6{nTSHn5@Dj_E z%m;84k-f$2ilKak5`}30k94T+DX1{Um4A;jn=yCtNXXB;J#?5hbXzYsfqql0c9SygaYfL56gxd+#vw5cyBWR&|HqM0V z*|jHBPi|>PXc)dHuya>3!fuFacJ9i$ox3vFx!eRh7vkt$rD z7IoZx3-JZ_Vf9kRJN%E^f;lQI;Hn_9%dMIr}=E#hEeyG5L(EaG6B)faIz5f3vF zx11cK1u0m@;_`zBHm623FU^md|9D*0yb!T=DuK+CmfNMEczUWSy;cakQKL$BYUIsV zh%jZ;>|Yk#fL}~HI~V4vN9fdapNomGsGfSimERT3XNsQ{#fMZ93?+Zg>u5bV4sEBT zOvjYDfQ1r$rELwz(Gm3tw4_hUoeeBrXKrT$=U8Z2LeHTRRAr|Zx?;qU6+3@5+NLYE z+ISn)yZW}l~GqkwTel$a9t!*9++%eJeMXnYu1!IL?Q z{Oo66i~sd6AC_fU8!py=TD9?F{ijtOFxG!s)e)QHw}#9BEHzb{*ZL0^)_(+#V1X5e zbG8T(O)3J`q^j9HT|>f?01~hA5HptwtE)dPTm4D3NXX=Ct3MWp%G5lLa!9Zt{_)D{ zPph-~)2glhP*G*|$2C$}{jsXu>W>nzVDhkhgGnv3Qgb}35(;L4Vq8>|l|wKximOFn zWLQGUzm*T$otAIJMJVDD(_9+mzhLV?gPsv&`P(|spgIImTY=Vr%!w2Vv<_r0rcj`DpvuBf ztI#@-C14G2XdTEhu!aJy0}aru_pc#1t-T8nh;BvbrGTQSyh>zYt58UucuB~M1njL= z;IMB6Oqe@N8?z-OM3weDwUn^`TrR92oyR4%@87_CqA3WhRb545$mhJb+7T8@PPU39 zKb7&2qisgtQ-RlMTrq?1iJ(?&Ea9YuGuLsigjFQ_u(OK9;%+O)bg8c**-H-M$|_PT ztRg|jZWW1o%T**uomHe!!Otp^^@CL;CKp>pis=t`3y3An7`)_Gk+|uv|O$tjk;B&dS6oErm~9Es;naYzj3+Bq2m#JtN^U6^&+HcuFGWn3@)SFkR@m} z(2rzj>P}Fw4P$f(wP@4_56A+yJSe;lHsK*$78smzTe0b`Tn(Qc?&Q9zO*efvXqt&oq-%wG9LmTFsEqj>u*_siy=;`Tm?f8}XvOn>#$pMA^S zUwFsYpJgZWxp^wt$~z3))w(G0wV6=FkW6dd0BtX&glqzr^Bj!5go|8IHkTpE94BM5 zTUp7;EWd-YPXGGj1U;iz?@)5Q2PN2k-Dvb#$!)PRo+dPMBXF!0Ff9N6nY;+}Sc(Cv zlol36&mF`usUj9}Tv$@_MzPGH>iEMxDLIQGF4g#Xbp8+a9sR+bU%maO9ErhshSOi! z{rS)T;>OqA{&q`BULrNGBUL!A42w=b6dD`?8Kh25awy1XQpi6AbXq-EltbeON&$Ne zo2udzFpZ4MO1`#YBw{2pqt?eF??Eh+25TF|yB;!65#1;r{kGi#bn#WA+D7qSS0pMU zvSyxA-L8ZS-QDQ6X&fmc8N<4SEPAFyuEnovtW1a6r~!kTuRq9uosdKTONQ+;MIw#j z`wlu)4pu9b^Q))w*K}1*>Y^^ER%2`cp4(WavI3^k)lf~uPHW{m)pAUje&qoAq3`|w z?7e@qT~(Fux%WQj+~4=+kOT-O`t~`Mdhe!Rc&6$_l6uhZ-F=&~aA;N0Js36U>KgqR z-TpxbMh~mnSI-({NmRh7pn#}R(Ta)!3W5llQi{52fFKA_QDcc36*Veouu!8?*q`s5 zYwf+yj~jBsPkk76&Or__%u;AM7ppz?hYb8@?aNVvNI^^r5lh8{tD-GSYng z(4WLAs=&Y0J}3=1&M(EP0TiQQq7fBW|Ij|#=JJa_2;ZL!JU>}H;vgkFh0z6-E&)YC zL7cd9OZx|AK1H^!=}uV$K=ZG3Bp9NY34rKaiQQFoVDjk!U}i8d2Pf5ZYC`*)a{Jk%EuAUA z*v8>P(-x{B1v55O@daO5m*q^bKCfU0m!k_}?Qu=k&^$QxPfd>_W~y@?5Q4FTOo|sZ zN*S`a{8>yc)yvyuJ7f%v*YtF==xC~V!~Hh2C_u$Ntr&@U6}M-_e%&FLg9e@z4`o|) zcC(%x;2Fr)<^35;R=?Ew+PC{esV94={|^t}_|a?cd+l8tW$4R_-4tE&wh#X3pRW7I zTi1BeE?z<+>FKQw3M)hce5l#*kL}=N=;x}zhCWk1Hu$@j@&uuzCl*BGms-FF)kaUY z@=i^?Q4t1?`fRKsd^O71rps447&u|F;vQ;pri+R(Z7Q@(ml!k+48~u#yLf^gt4pk! z(uH&>i);-HOl19F5VO(`2CfMg@mcYJGuRG+!D=X?ek&gf_`=f_R51g?g6sU-IJ6=d zxN+)W?Bkt2Y@nd^gF&pHq`kWFC6_a&=9wVah+0kmbQ;S=Hq|s{rD%%_*<@#Du@nzU z@>}}P`EPyqjdy+ElDjVZTRVnj{`;@ld-E6HyXRNG!VIG*E+#W6y%$7LM#3Op+DIAC z?M{+pLo|0>Iy$aEvXsM^r|dW5y5g~HuGls+AV4gV^x$7AYkC&`@y-1|Qd|?X-EG7@ z3lKppWK98)mv;oX7x$NUq^Bitg=IN}R2Hf`OL?7GlK8r;lH<05c*(0-gF&&jHSx}mtPywkHiag!w?jWtGjH_hGd@@|H^UFF>} z?iR{B9iDS_d3O|dSC)6nx!Y$5AUv$IqK4dUu}*hoh1^SHVdrRGyr{f8hPw;OyJJD_ zDo5`2vhX;nEai1WuD>pnJu4ztsVsL`t3vMT{8?9Y)U?B5HLvI#lRwLldo+uJoZ#a% z(A1WEg-#z|Q|#k%Tui^F*vsXlUmoPrq~V(4AudgftSJs~$@HYU_jAeeOPBk(gimyN z50|FStts|!$pO+T-OZ(Kwp>#zaJec!PUltY$qn2d>y@tK67Q)>ujG;=aCNzZOSFYp z|59#EQmiR1;u0oRrJYxSgV=6}7ww%4ADrrg$Rq-#SYocs;>zADBq z)(&tzYNGhTj!wM#V$JPruw7p?pFfRBk?nAtXh`d_5LhjK!#t;e2`?&5Tn(*G)Rrtu zzN~FXBe0@!rK@FS7p+lrqX-w_D^(Xs)*;iSh9cs^y44*u<{);hRd9+C+t|41KL{q% zwiBkg5&nP*MgME(GFohDQq0r|)*R*Ye8hGKNHVkU6oWG>i`m4(sS?7ebjQYN=Q6|4 zKVNScn$6Y&t2B4A4I?CGvyGBIWN7V-DEiIdL}4;G)gkq;S@@APteIXgt3a?g>#h*^&do1FjP% z5O9rA4%jWJmjL#A1s*y*qRwL^!@2Z_{27Sunwpk1wo$ZR0LV#UVNoLazb#SIGSmR) zY$8rmY-=F&-dBx_5B;hfgw7*VJzq7wO{}0CV>w9 zYQ@yrs=!wojwaKo^y=T0Xj1kJFqk)=o1`bEO$8=}ugbec)qr7B)DHbsoZ#VAolmJ3 zMa_d_q7lK56lBS**901rG%*SkQ6=l`6exJr>Q%fL=m*hJ+Mq4(Ta+elr?!nHS+OzN zt&KWGkJ7<(d}aXD4wsow8D~gg1Sqw6TS?bf9`Oz0&%?X0Z+Rt5LEy6Z^C?7G=^2(B zt+!)ZL}>=SZQ_U|y$ivHet*jiC zKNcxEQp!(u@3AtdFHi&|mG5T?Ve4xr1Y(5iucaZ2Hwo$j;V; z>}*ZQLffUn6ND^9{X&+a(is?p?1te&wk}$upv0G37qX@JjL)@q`N#z6hvZL+%3$@I zBaITaET*u;E8uo~-W(S<&X#&te-nLB8m0am>VzyLC604>0esr_|Y443OD=2mp<2PTaOsHf$gVkg>Mr z`+=r{$&WN}{##SSj@NXt*+6VI78RS>oc~kZ4P9x!Gfl}=OdKNJj$S@K!PW5m)l$5q zW1E1=d^XftS@lNk3A(gyBs^SyMyh`9-2ya%eWz)3se$Zj2P;LrV=BlIUfaApfsz_Vi3|zZ zBth4fC;=iPRD><2IG89+<2MZ!_qnMZndz){ zdr$@RJr9NiDLUOp(MG+u{pI#w*;Z2NM40x3e*K8K3hmM z;(mtIM82efOQt|dKo6;Bvd18Fuxo%^rcDz%CgR-mA*T|%y|LXNpOC>yjLJsG?gYOz z3x~66S1_!t>>ke1UHQ7!_t-tyy2)Ze!fd737fB+UF+Xj>00JOyQPR$ghwv*|25d&K z_{)-aAqEzYE((i~6WbsgJh(jYsTN{YLkP_rhCaoOfd2wYS~m)d-z3tN}pOC#~B#H{1K-YLlHvRWe~fn64eg$!Cv9a=;P7e1E^$* z+Tp$9;(PsHt4(G`I8WtxIX(+^>LpVE96%?@+u?QDvcgh3ymxGTufNN0N4531)fPg5c%)7=qs{WUY1XMXu>^xz z1A`f8vMJKc*^iG6xeiS*WDl_+59yHE#ijaL8aBfTw(x%wZQ*&{0w^1knqZe38tOWC z2iwW+<|K>vrZb{2#(VlI77zEbdyz8P&EHyjv+!(T;9=o8QX7?J(FWPBLl6vGZA?H| z2)sL8Ec{~ploZlSH%1P(h(CkQBSdH2zW+ZuX$^NZ95HD*$2@k?vso)y6FpH5edYbE zCYLIQo`!x5 zn0Q)2W5yw=5Iug^r;1d_eBcVr(*m05#{kVU3XQa&o)`l=aPA06Z4q=H(nH5CIKCzi z9m_A4VYW14X2GuL3SfqkM?y^Lm}QBwL{k!##3-{5NAuK5&l@%^+A>G;T{XtG`}o9s zC4S=yr-XghA3(R%Id9qHPpZGgxMk;a>0Yg0-`%bPGxO3bnav&Uznn8zhOP|tfQ6YY z40L#<{>cSPkWjU=<2k551pNhrwH7AayPwb;YmiZjw<|uU%>+B*8o6HAWvk@Sg5y?t zTu>XA8FvJ$%WA|`yJP-4Ds)HiY^Q9!Sz&410fac~-ZMTd@Vdv_JvvQdO7q|5BXPq5 zRJ#a>F|e`@nBwMp;B(W4d~P|An@bSR(-nPDXgReB1C(RVdR`g&L5gFh=0p%?WI!=@ z!3I6w5bpgua!WnI-!a>V{5!+HGti43DCy;_k8jzFo?cF2Pg#VBHV+Wdi6xQv2(bY^ z4v9m7|Flj$$b8V^})=0vT{FRUof+wOu+ty;QD|3#f=#y zWxMVDPDxSy!VHC==Q#Tw3S)-?L?+Yf5#=x>h{PS6ES%*(MTDU> z$&JeSCb&_x_XkI*_U6vQORQZ($l?u2I3x{ZB`zp!o8Ar zn2|2}WRYDI_-tSe;d{_x}-@ZbSd=Hdp1rvJ=5l<5P?t6rntj3OwSZ3qNo~v zY&%mt--Ua+&;t>Iy8=jt<$R0BGfiGPLaY;~0>_jN3&c95A=XKQUYvW&=eOcYE^gnW z-&I^C?R(G1=s_|Z(nYlS0Tu+F?Y&fL9H5Fh2V9RJ0%ssNO$i`?<4)g#opb3siM7QX z18K2MpOsTPQ^vP&#a0R1#>JK}PjtZ#fzH%fNHA-jq)SUSVguSf|0ck!fRRj2qKbn` zBIVy=omXK*MSQOz3H#vYeNs5s2_)+pdjyia?rDgJupTdjBBP>fuMm<(+P`?KA;`ce zZnVN<+V6jh6*|4$VTH%GuXZoN9mABE+dVo2~V@GOlL37Vn?JhTN?$)}9S+ zwHeR?0K_U7!Oj(Ki5w4m2tlWuLcHOr!0kudtk~mMv|efrB!%*Yr9LbG2hplA6ad99 zB$6K^n~ZabfPl?C6J^*<)@27jf2Xy;du(C5SteJ5rkfdV zEwPthn*2c?;JT7bnK&V1^-+A*rHpokLq01ZO3QE)s4vJAb%iOHEJ1OQhQriwn0D@U zn6f#6vYEgoem2;K3W(Z)v~|r!(uKf6UB2A|)R%_?wMds@a*_$mU=oWd;5NvPQKPBh z;Bq{iq3}y}aN7>9o%2%R)WDr8!Nt8J9K!X&;Ww8Et}!-k)xbR*?2__8;O_ZC9o)mh zF76Y7%M2=TzrRFq;c3K254eYeU8UL)f%brVSlGqGQKQfYmI&?uiGIsHo)M)oDO9b}_u}ju;qum~2I4tbq zT@kos?htl&ED_uz#4b7F1@3_!Ry!=(#r-01nW6;l)k_5T2(imys{(iH(q}dNGc|B; zTq3wfh}{_ncXtn~9Ts+R;0Rn&vk1F4FA>}$#O^W&ciUI$thSjAD2wV0#5Gt|z za@EWHXg#1aUQM^xUU1XxrJkAgNNb!q+OOV^x_Zx=c2K=X%@|Pcwem;3$2pQl^?unB z)%&`t|8%|{x(xZi=%XyoUw6kL*C5icrCit6Ahq?duRWgpb%v3}utmmWS)5-dOdNV~ z{$sIDG2Xs5E_${2JZObSx8L|?Umn{s{=y%r=CSSX`x=WdL*XO-A#d|*Ryf}NSpDnYwZgIX-Sw~kC=@sA2g>eu{OJsN3$>P^;7|N4bicwGD5y1C)~Ryf&yR{%cb)-674<;&Vv$8SAjGUzcG z+&tBk$spsu-;v;yU9fISo83aTH6y^{cKdDjo6>UURv8Y|fR?i435|&C3 zIT+G@pf*p)wj#`nule;ET)uyo70+>LhCEN)cmHdE&lC6Uy7PmVz4C`Q?EET@DRy4W zU;g<^-td`)Uta$EmN!JJDOuyb;w>gzZYOc!wf??tFCt;#$8NarTi?0ks_&dB*9@jR ziY~nE`bVz$#7*b3wzo3!8pb?>WE?C0p=y8(hV$<^|K_)S{pb77yOGq&YJpUS^XK32 z)@^(L>3cU{9?HmT9P>6}U#(|4#Qxf!>5!d7{h1D#pR^oM^B5GrS^=uYV_W0MjG5U^-If!c%h4e1cZ~w6;Sl+!uMt$vkgs z-ox}%PK0KbTBE7FOt#B=!EwaI+;-c_%9=3}Bb?h-*2}#`lf2qxsc#Te)M1a>H$;2L zO6(zb+;iv6|MK9QuK6->-ix^`&zp4 zlW(D)IEjQ+{|~%GmXp1XGN}PrN=P;~2Li@1-LZ#@Ud*}aLmfAO%$RU8de3IrKH`U# z`-k=pd}vSgp^u4sq;F*NU;XmMU;Na?@A}YZLvOzOz=f~6^WtmnXsI_^9TJ6O=_>_O zW3EenytbgqC$4aC+I47F_CrJO)$NCFD!a`XOD){_FvdV%Fa}ByG<7l&ZhL9O1|8(~ zLxolva8*L}C`kHU2kTuGl1MKour8{Q^u0J5+59#C`j*??u>Y!yJ^=L!tVb?>)eUd> zr#tRH-G|(W$AN-oq2L}=WhGF3sDe$-?sAx0Idszw)u$_{(BlNvFMe`sL{{KyA*;^Q zf~uFFA()j>F+~-xGZZJt!J$1YwK1~Pd1iGkHB-7G%@m0#l{6@*QfN!fbWI*LQ@R&5 z)75HjV~^pvS2MN1cQ9pcmQ!g$9v#`qWT*}(B(qYo!u8X3O+P)h(oc~~?np87^NuQo z_)uMM*H}6g&CRt9=h$7JSdFM88rB`Ijh5_7)0Mj$?r32hj!bJN7hxY1AI?_#j z`}11gJT*h67>ki&xlxhLh1QX0mG=T4d1Byq1NJqt!oGjih#?pR*&#;g8 zB&FSyABWlPB;^oJ>=2nuXUhcE@!hO?RWWUusqD_8R)*6wmN5!e#O{Y!^q@Ibc@Os| zqnZ@ow*vRHTERE1fLB5dca#-*kzb%V0f! z&9_b8kWy9ZIw`Zwkt$V#9}2d^M=E`x{LtYkRgXziz>BMnzumj3jt5QQ(yHTuR74xK zEag%ZYNWyx{6CzYP@O0;R86>Nq&gkxz)@#)n;}+%on;6Eq`KB;Oy|;8BsZBuyv#Vr z#cNp>1AFTAa=lw-zhri>R<<)?NXN3%gm*Ie%CFC-+Q0my3<~5Dw$FAouaM}!{IZG( zVOA!#dVD{H)WUU zMe_I?C=~=udyN1vk+Ga9mu3mcg)GCJ!OK+I*wWsq!!Rb*tK*XcN=mQBKv}bREtqk| zsaafUC9kZN?68twa58GBLvNA?>CJW_TSy1x*_QT?9p#+qo~dU#&rbsRz8`;`lm5=r z;)yQ`q55>HNA)>GDnJ-Ou-5+0qc;}EXOZTz_OJZ#WPOxj*afs&9WMxKPJG^}UtHfe zg<0^2{;mG^evHZ`j$4?T;I-8d3>p|D-Ml zYN7|WfA9hNV`R+j`oeTY^`@cq`YbtwRI&iY=7ON%`USt_3NBX^B+FE$@ zHYalTjh$1U|5deFbkpBgde4#K;pA-MFti_(^0gg|1)cH69E)TUT}?1B;s-yl7#(z! zwmFH<5;5D8(Xe)I&03a`Hv==Pna0@lB zeemOA2mc_@jcA!bfOqIhE8o#jrJEmrI!H&p7~4RCZwtVibhK+b69vu>}fp8 zdzx-Z=7;BO){iwe^HCQXl{HZ)n`6xR;ne#fkt2R863T6Ya3ni#0*!GB}ecgTe=;D^TYoevlKJ`2hhzI;a|f^_Ca7$aK(VqC*>X z2JwMqTgr7c(_DPA$Kko` z90z?=?lxf!@u5f_Zqb3}?C4?c%Kq5ipuJJ!PLleI65!rg8=zV;y4Lvgf>ckPQL)gf zX1^%m9cDPa6IhjFY$C66_FJ+Axi>0a9ThyOB>EbD(Bx!p!91wdjvfAFBx^|&dr&Pb zLphuYrEk|~ry3RqXos$YqRD*ZNfAb62RQ&$*cw8xQihzACcn^3M`{#Ss$S}L7AOoK zBlEQPou5EqDw#4;;zGwAKx7;X#{XXS{4NLKj)M{kjj#q$0&Q|qr;{Qf#72jarg(8Y zZ~XCe!Ucj*1c#;ANJA2_obNoz8D=G&>U7jVrelkVS3z77=~!((88aG{4Hz07H=dbp zdN6vJ;&TNMhDje)Lp1fI0#uUnAn!FRqPnG39hP04rzgG5ob0AN$Q6WqvY^RIhDQ=$ ze;5qb6FM23LT3B2gBGvRr0Bw}QD0$kw4Qqv8h&hOqj>P*aBOHJ`dC(>!qnDiZ3*vi zawRY8{KO$Ih_@1r>g?HnW42V(5!a^XN7t;)8Y%DMGD!a2h6c0 z5yWTKBa&GE%=+D0`y7AFcgZo62R|)}FI{OvraM~KF|xZu>)%^S>p$&lJs%j3#x(Ow zQLXHNInG)Zi@eh&QY9fT4~YYqPyfWa2>Oc$9<)nPKYufI33wF_uJuykld~c1V4?IhWkTHvnR=H*S*a-`_R)oKQLQS^XC|+>d$qwufwV zb1whoU&5HTiU<4>#bf@qIOeV5{az~l;~zvd=A@e6|I-h=>)hKvu@%F%EGnOWd9nSOK)c)+LICJgBl*F0AyD4y>~S zv4F_Yb}Ai4?&!ceM8F2>m_T6WbK@&ND3akQo{C@(9#c)`TeBnBN*gJ<{woQabWwkM z4nUEo1AdiSoUmX+sUy%6WrKNbW}=p(Ny}4-Y-Qgxp8@(gWEYRM7ztK-90)1OS!R(P z?Y+vIE!A;@CUaSXQ9$&pB63TJNi;JPFjH^^B1UFp2TG5-4r%~K@Z^Nn3oJ(5x5N8L zf7F*3_9UO)Gsx8Np-!0F09CZF@zYoYgZeC#@<_M)`$lt6ZK_J>MK9g zW;$!@`6=p4U#a>@XMD&ZPOTjX0#2zEP7bhcSWn4`Nk0t3>c4qHpcxHO#4*fjr)J1o zV~-#pM#gHpPegUyC&GvDituI6wP}!(AG1~DFJL^>{(m)Rm$%=;oxY`J{k$y!;^%DvMrSd?Q2Nu{7NEmvBY%=|kX(P!P_6esA(Fy~X;8Ww1HCNHIbYJwS%8m#3@nYTkpXyElnl^N4pT&ggiN)OBx`H4z-zwj ziD6(V(Mw}sG0fA6fpxa$5saK=(Y28S!;6mGlf=N`IFH(}lkwKrYPpRM9`a%H!g8Ax zh|JO${`XoPpAWELudpdWwpeQXb*;vPq<_XF?DGpMz<38iAngcZ)gH$&=Ws~}OOmA) z{;CuqGd6qJj57htdxl;^CkbzjU{}~TnQ=rGbz%uM$N6*4i(Z8QD? zRZVo`qq162dV98CL&MRU+HDAzFtuCyErGW9)NV<6?F%cTj5l;Y-ZFloCgUv;tbNmR ztlE{O@UW}4HnpM`g~cPtvtr9&YFCy_!mg%)3 zsa3ET1-mkTi>{=VZq4FS@e@Zs0h)Kz!cAL!^cX2WfpDnu-4P?9V@>3;)W(B5%)P;9@r1m)Wy!vH)@!+qz*Dt1dcckB2hk(sbuiw;q&X+eqaP4-?Z#TtS)_1{!$ zIZ&}A^SIKPB}@7>1gfEO@Pl1U6V`L;Vb5t3gP)H0<@tD|%DLW<>#S4E@ zj|#2YF|4Rns?bz26*?~$K^${|%|s{7>J0>%Y4t)~6liEMM-;VYU~3c_<&m|mph5#i zXR+ax;&jLvxEx_cB0jbeE|*S+Kf-sG#1-Lc0BLPqO%aYmnMhej5sm?fc8?+)0}vA_!jeo1z_PWno$0#F z#&ap`ilyWbif}oY%OCS#mTR5EAIv4PtMpg58uTryBfGM0YDk?`XPy9NT4BxldQ=1K z>(N6o6Pxf4lbMcr%=j-=)x*dClgUidLS;Hwl$kIl7>NrLnvsS|+G9-4viw&alu`?^ z(^$Atimm5Z)o5u$0X0xc%NkKB4HBD4XdJ_jX`@m~k-M580_&Snsuo-+)fb{tO7o_a z+TkFk0kBRpvOCtkIZTGTQW|-`rj$nZk430~Q39A!>LJJ*6n!j*WJ5}6*`uhGRz2!i zk1C}!^v0A@z3ob=dJ~mWdh^(n()uDbo8udHUada1$Po5UmLVtXp(e}vVhVZNw6DPB zkGH&?(An$|f(X^l1hK)jBR1@+M>!s*9S+xDqj0kL_(4s!uD`~rlf$)7%l>7cSe7ok zsw=NURaT3-wW>={USFT3>EZ_zG63jq2?o`fiKMjby8pajw@Qw9p5olW5!3d#AuPUq zhm^Q*+Mh9Ny!QI*sUK*PfSKa2~1RG(vo6VmdaQBwbhj z-SQsGj|?v5Ju_^TXn3jVeIHB0exU9>p809Vt-(HQ-1-cqN3k4a;1N^06kns+nhYce zHSlp4Avauvq3PHhV#k9U@$?)~j%aM*skgb-q!HeivLOO7szXugN0i&aek;wDUTljy*LZ`8N!4VIj~rA3vV7=u`7y z(V|nJ*vqK$NC;u@LM$zIIT4gueHWxG0nF*bNYAvT;JR#<0-Z&RzH!6?Svgul|WdUH%S8qcZkNg`LD@Nl` zLm3_~GL&qvelmt~2#HNN*z%w(GSW7ZowOVo8PM@u42+DzG^kaWI-jt0ohIwUViv~w zuvmObeOSz3zYxdC4=yyMlV~6ChOo9lzc}ZI$3pt%l7BLz+0Ei0R3=fLliMK(Nk)6> z%1G~o6bp=y1aTpwp#69b~nSad)AiSL_a!n8EjT|y%^@+3}ae_8t6QrG2!Mm?D< zo1sTf3!Gy%2{^ZfRb@{#Of5naP7I53r;GsQuq|#qLHg823_yIudd7S4xBctIFbm|< z48;{$FO`1k2FRy9&n~rd!|Z^+H6vHI$o;HmgGddb| z8P=55=~*OVid-b^cJL}Q8yi1}GJ ztgj_-nP=HFyX$y{)@jdd;}4_j?~yK?o}!x$c{X9s&|rr=Q(#ysJ$J~nDSL)8Kjhi8 zJu9PI^Lj^oJzG>+(kwc%o<(hz$&DQ$QoSvDBwd$~eA^lUOlO@)nGJAi|6$;bv*m*EI`6dGnfM~&Bz&$@`C{<-(+!i$T^t_C?KP?Y&EvR zw~)fp7GqX`4V7)i%mkaO`(T(Eu+1DB0d$j)t*y1lFIJb3I#O0t_lA_o@*c`a8YNOn zLsQk8GFC8Q7gjKAXsFh^`9tL7HV-?FYPJHJRN#t8Ejvj9Mh%(YSD+rz_-PFzW0-7W zVSA24Q6b({gMjWDSck;*lK_@Y>Q6tgY&w4Wfn^iv(+@100s~k}VCBiz9qz$v*VtKI zM|SX9KCneOW(Kf*!`dk;YhZcUnr)^xk3l?GP2mJj{kdxY`o7O^C3c~GTRnAqJT2{Y zAyc^`;)~bY5o$B-oiRnYLS7iykYulW%xT-m;-epcIURyf|?=dbe> zMb}&5vi65Oqq+;%Z&=|}`@JEfdQ6`FLn~k2eyvxQ&|GUPRGaC3JI`CI(jC;#T^O3w z?&itEKW=Rib|40Hp4<{d-j^9O&|cy`ihkXxc)S@y9vqRyuwxCzaA+~$Ptn4;%-l zo@;<6%*ue`sQd?qbGlbJJ8j#8b#M>sl$mgL+OeJ?`|>4%>p{^y;4b0pwEauRE~;wI zJh0rs{lpT%Jwoh;v(xqj0(D|&duFcTC(~u+p*R?O1Tea(GLV0EX#k5C!=X6PlQ!$v z!knMOKNQEJ=*yhr1l&paoYD^=M< z?RCB5m!am~dd*k;Os~(he^#$~krgg$|D>*={C%i-Nz_E7%UolHlkKZqz4E+CJFW2O z_S<94XLOby-nO+oBKG>1>tPRCI*5MQgQgj7hBVcflC@{ZgUn1sLms4NR~mS5$~3*e7IQ*&=TZE! zA%3@hSt{@0w^$er$ZG%Nh2U1GSr{$G|A;i9hO%88vyJstqkuGHFh>S%J#II%>rtu{W*O}P3YmlcJUlWuGrebNLIo_ znxw7qV`Q8wt|Oge@f<~nd6gE_fD=j$9GFxCqxt|eVvj38RblrrY|%n2$By0_J32=E z5LClMO<;;eGibG=t4RnGe*m_u-S*m~i&Pv=syukj;`0E~EIwUE2Z6Kaa-ey-hrUP= zvk!26d@`q2l^j&>33zr|75`C6?yA4Go)nwZ6b*(zBgX1KB^xyg&!xE&ljrHRV(hO^ zOn#3mi;#&_o;T>7Qo&)0BOcPOG|IKny-zt*1;D~6V@1v&9lxMa+0_aR10{%IJc5d^ z&L+2vo{-!Q@B)7q!0gsFgtW^#w}E_|JlNQoP_wfgx+NFfRHTjSR}a>Ar+XQTvpvOF zGR}&z5buGphCMLG8uq{#YuE#0tYHs~v4%Y`#v1m(7;Er>7|V%xHoLRcoq>kOI%6V> z8RC*Wcd!}8xqs`&KQ~E&C$c~!r$|a6uv(pE)r_nMeJRq$rWtGtiOfgK+;&)ca{}WU zb7V6O874*aY}F-`n~g9tq{v9pZ*Q5RH&vh%uWAc*w?%44kswFlJgfmlV>_r{?jO=G zhbr6&k?V|w-TLM9%)R<0f9yT_CHdK&5$pI=j_o;bw(ruHyQCTAMu$?}I|3G};g47O zR4)Zg=97ICaLROhitvkJ50>eihhYz9l%jIjgK3=tG3>#VQg;q}FewQz_~1{b%`89o z;FRfcx~b88xP`}=--lXqqBo0&T3g!ZdD>)354JSfC{?ZKoS{Ilw?rfDkKGOC*w&Z| z>(Y7cU<*!iH;F(cF^5J;F8BL{ed_JgFBR_{;p?KC9Y6m%%8KRJY8Ib)ElplCpP$c5 zo3~tZ?xx0WiL+1CiV?&rU!a^Pd$f0M_mo`&H&JkEbLWp~vjbPoW;fWSZKl0UUm_oG zbDkp-wl3%G?Kj$L_900dDC2;Buk^C}b&V3gU%wZ>D40F#l3%n+Xx0!4vfZI8HDkcS_%j=le zH#N4A8X*2N@p6>sq7?uJq67lx2DFJviYdPV=g#GwX{)}xGo#;K%R9>q%;g*+{=S!^*pdS`yPr{$71X73WyqbX0rn;eD-;0g-<^RSC|s9f5hfA zX>M_7!O*70e&kj@Y8-mdtME~~sMUn8HZ=~4$CzU;5|6-h7wC85gltu(eOz8SO>V#}Tzt}8p(k~Kb z=kk074M;PnhTAxbLGxf{rtW9u$I0=;)vEm1aCJ<6bO{yNC3n+|CXikF1-jjwk9Vh< z-edX`#M!T#O3q66QHErn$XK%$PZyh03 zXDIfw#S%fe!<$0%`0_1+W)Ikz(Cj(dK@^mJ9x=RCObRuv+SJ(Lmz?;JUCrh3$>&;{ zrmTT{OIKs(if&KStG09zd+ShWO>-``L+E%Iq?WkIQo))n`AmsD6&OGQxrS$zLrBYF zMS-;g7Q9To{e5RkQ_5@&q}r~q+aO6cTcawcQ55;IoUb#d|(VZCdXY|Ejr9P#L1ngPdCB-38ov>O=-X5N{pXl>Ah0b^lYc?HGQ=nDP7oT2FH- zdNo|v^0vpOEgNKP*|tc;h7*exWQEelr;3oM@uQ-@$&$Rhfa_-AKNbcf&tF}zs9fEC zn{D_Y2+_164Wv(~$N=i@GKs;(?ty$C`oj9a{ami9&NnGimSdqsbMQC)%rHQh=>J}= zg|&l?DIrIH*GyJuRBiqW3#)1_LJMF56P|@%JKe&2KklEd16PBZm4)GG0Kg$o5!-zp{ zsji(*qpx=o1b))~k?BfFu`t2*Is`vUmQ+iYBm0ssM6}1`IELY-?wWC+J=_nIw}J^K!ITwab*p3inKa9g{ewg5sikWJ@%c)hY}P zM@ga8PAazSXf-W=F?ZUcV^RmslHr>i!%7x?!99dawXfhEt^Mc*XtKdHvs8nD^WG$X zWF`qnC-jdeY#3^)Hlt{#0rB>@x~}2Ileea5qJ8)qg7f+t7l4!3Ic%YVQ)fp|va=GoQey#pNBoP{UWS9O`*HM2SKjIUd4$&}R=C>d;{^+`^{ca+N( zZE08OD!u8elZGyRbz&*TeRV>(wN@uD=I!l2x5dfnT%z@y#?O^rLW*m-I$p%jjVkel z$$@d!9w$=+Pb6F-DlW4MYH z)fo_uuSZ&|DOyjeiMSl8YycWn@Ujq&*2oE$=ofleyLTvdAsXhi${r)qg`UH~dGer8h$kQJ@L!{3T z>DH(Dr2oTbi1ZmEeTs>65uH>!4euXLp00=Tt37I{7FtmYMZ2_hw=_Rxyfo+U;A3>jutd|cB^k18LHXAS zIbo%-KDV_88hFoo##b&%k6T;MXfY!tQ_CG&R21iGy`jMStoWa_;~}g-PRMdDS-?n# z4+|K2DVvxSe*zvrMf>4bp{!3<%ZXuwMn`4Te82{+=?e*Wu!Mz#B?>vjLIQ72wUE%j zrLN2;UDlJfqOg@E!^Vn&Jq;Q<{tOv94K?qKX#tAyiAucLGh7%^Y6Fr6Rh=@9ND6Dp zh9$bJmLWZBl3z6&jdQYB3|pW3+8O7XuM%AKkAF$<)?m}_{3~AG9l3%!SfobgTc@p7 z4$7A8|1r}*bBll;YkyeTbVRySw!u?0{D;1h8D>t&F~~HE=h;S8UZ3L7!i9wVqQwbp z1CrY))y?MO5A0^^)+PyhSg1gwdM}OdwY%6y?7fWl2%hlwNYigO<$DAJU__DYlmmx~ z-^*L4ve_!JL;VEs7^4RiZO-Sk*0^mJzy5V1S2YW!P*p|0{x!KFwTj||%|xa$F@Hu9 zA+wX>r;vSIOY{Mxz%<6#he8Tlil3);+1G{3(?D7sug35kD7uSQ>9ODSnSDiGgssp@7j>Hk{qXE?S(rrP%P2 zvvOSMlr}(>)}y1voFC;WTnG*7f3$;4UeT&sri6VL}sv8bhrVhAcmS3#e_ph@fiv_cp1ky`8k=WEEcfek^i zmDmt;_$W=re|%3PJ*wkSb&M*+H`5fwORm^Pt`Q>)jHGaF*d=b3JLpXGB+nFQu)4)p z&g;$yW2)x!&;dmT0L7v$h*EP*>t^cJ$zHUO9Z?J6bSbr=E{mW!xbWN8h+7Rw5sVUXd<>B$otlzPtstFRb?G#!!QxGk))ag0#Me!viw?Ci&TeQkrDQ?#)Ya@o zgh;5_hM|h)UvWR21tEBud?c4fj9Mj^sG4^0sM1k2QHrvR%+RC$F$P-+*La&4E=ec% zjPtgYS_6=l2vg^w$*2Q~{)x!DNGi&$b{*((AF(rXFij)Y&Kt6PBeTu2s(3e~v&eod z=c0Y_4iNxSnqwjKGsedyvq2EE!c>>miQ-X*nz*w0NjiETL%xFExwZE2dw8@}!eOzR z#3c`?yz4>YBaV7KOq=i?i18EQ1}UHt6?roGx>h3{K2r^jd_yDO3?tvHk9?!qmp{Y| zs}d)XRp}tvAdy#eu4GfI0E<|k2|;Op_jbb&@^Q+Fz4Pr$JnI(4ZDS}|r>SklP!WCA ztg1g_T`Y@SK`K38hPSQE&TivNf+DawZ#U+X|7}_*vt|~DUHvh*?EN5YY5*+ZO%pOi zZK)r3sMjW}YW-Net$;xjGCdeX(!dKe__>d%LCLPAG#Jua#6HqiIV3Kp3_JWGcF~bM zWOxTqWSJa7M?ZMAhSv@TO51kRGjYAI_ekcP8_mCUQH#J<+NF&%BO$kFk!TfOyn9&ygLtWA#lF@GKj2 z0m99E&bMUJml}+3Rv&gApqD1@EwIZ%^t9gK=~eF(!keHBb(8O0S;pW=qS%xUyf}Pt zvUJn43QI=p+*QPU#Cm3)7RgzTkTmD|y2QM?I>eslJrN(^t7q27^0|2-@i%*YeN0Lt zk~uBdV96ldX{XP>#>5u=Fa_4;v$|znST0ZQ{&rS*d1_NuR-dwr4p7JbJ#iRhjwH!@ z`}^`JbWPN5D0VJ8n@ol33cd$)94kJl*xu?XKJtm7)i*Jq(zsb4cZk$F;L4y-%}sR8 z6r+-eHFiBp3RpvSYLL+LMWBtK=IG!}S20q1r+w+=Vtm?!Gv%;GK{!5v1NE5IA{+G~ zvGN39#>T!>%`FVyT1JA!+}j(~xlR?5)f`Y)3ZR&?$TSD82HX8SWkgwa9lcLc#OPJ2 zUd!b`#BDA(X#wb}W{Z4STMhN6q$~m`7`0y7gVS_4by;VOV+x$`jXXY6h#L0b;c!=S2hlx z0W_LKThkAT&Z)DV8D_J*XuPzG7c8&<3RvWV_1f`N;|*5&N2(q@8W#lMvL}EO-XTwZ zZ5W)wj2$|xN6mNu^JpG39)K=uL=m}7oMb`GMx@Y!aogc@(QSt%s^F<^bEchTSb4H6 zO;i46=;ru2T`NXIlnUH%T{dNb1RrJ$U&ek1FhS5C7QGH3Xn(piYM%T)9L)~1-x2OnfGZLno#7Hcagmqok6;?UE= zyR=@ttA%Fm-SP6>pj0eHZkT4udQ_B^OBJur!_{t%8IKRwwbRn7#sz5!BG5X0fgP=eB*xw{Iva!9gGYZ zg1S#-!G}?H0xqjDo9dW$6%9&@T-F zreS;-xoC37gOMf$8RZPuYoWLN*JMCg?)dP=UPE%3aW4agV_U8tyHhk zjwSIF6V&`y?tAC9_q_3{xBTDoQZYe`+cBY@ke$rW1FyYDo+_y|cPc_pE91ueYZuNv z_@n)|eC##nY-;E{Zj5BBHf5*y6_MGBl4GKODL?1~FVQHTke%&!XYxbxZeX$vyg}SF zv}&eoHd@{q#eG(Q@2i}OnSEKTSEw6;w7}Y*c_bjMQ6a5SyxmLHJ&<-+=xK#CV1)~$ z!jQK|kdx0xYi^;BKOpY1yTCyO0OPj6ZJ%)?MDgAGN(e=5G>Y^5as!uFZ?)1{F1Pt5 z2rWMG>k{7g#zAfr+r3oqoMz3v7Ryuok0bD{(_%DQnF<63|C1?8aXX8nP!mv!lF%Xex)z7M@41q{%P~G?Q6FR zba5(;J0mma$#WK?Ah}sJ^qRxTqkecxmNw3*ke!Li_Y4w?f}-oSiuS;uxFDFv1_Z+9 zx9+&~eHT7^Q&M|t$U6<@BFtYUkZ1xCFrDaE_5{+p{Z&Sh;(bw*^zj2uuZRdS?piQG zN}C)ZO}Onw=a3EDUBsZ|n;Nq`e<+T3I{&TjzVWUPTyocCf2;9M=fD4&y*GdHy?cK3 zEB1_F;w&)k$!_oq|ElnAF_?Ty5A05a%aCngs3xy(RDsufmX(^EbRN~ua#1&^g_14G z*oEfJRWz}@@6cWGzF1V;_imWYobq~WVE?0ykw+LKx76iRd41n|j6+4{?3aIdcet5_1b%u_A1OhD9KT@;7> zF&$%W>V|D2aN@FP&f1oSEa(y)&92dJ%B$EzVLBNEpa4CSOH|4Z0|-i6EX`*cjT8+; z%LRylovw^CZw@`2cm$oGsiiuuaa*ZqiGhM-bR;p6OkP-rBNZT)gZ;R~7GP5EWEe#y zljlw=Oc4uZO=bv`S96fiC*Oy_viqze95TszH5hwTn-!Hc6jp<-;aUR5oBRr&Tt6~%O_ibV;?w`~C$ zB#_^OZ0#NFLw+2bM@N1SvgPQB$o39YgHs~Er|oiB+qGd8kk)tkj2SX~O9}X)TQ#K3 z1|<2eK*L)eifVXsq_5(AU}K}PaLI14F$%H>f)So+ zzgpXrbUEhcBrTA`IK@HWr7qKu%I}ckEVdF6$VqF22Mo#o0u0c_oSllK_Os%)>dYDA zVT%)RxZw3nbHZF!5o|nfO1%M|IiIuT%*3S{$6Ko<%N(m^tJ8p*+84E{$ybflxxBK^ z=u`2Z7Fvx;R3Vbf5zt4XGureyu{ zNeXm!iAj(Oox+AjuCWyj{m@yjho(XVfRLd^nd%5BlKv@=mIhnw1{IX{wh%JW^OfW* zAkFXv{i#8Xbge^;HNnUa{)LRA2|LZHrf>Gg7(D9ug%|@HKZCHGpZN@pmQysERvnHo z$=6PnZEUfL8h-BWj;jiASN(N$gCTP~g$|iGkPwJg#L0)6kCOTB+*?qYQ9(_0E>=q! zZQpyo1YtVQhP>aN%y)a#Q7u7J*TCIcv=EAzeK6;|nl)N+bbI@y)_+RKJ@;lSoM`{E z7Z&UkPm8~|!qN73wuhR}1(xw$K`cF-|+(9cPsY|ka9JVf!b=lUx|EyE;IAE&a;JeBK?heE|xhn<} z>TXaTOApMDtp^1|T4&Br2#J5cXxq_-I8&q$nMRNUVg@+{rT(Nc=p0VU*9K4vrU0_b zwWTD~4M2UQ0tx_1pu8Vg;d;BIp7Z}BPpBJE=-@6Tp)Ofq6w0))L~sqYz2F`Wc3Y0! zolD0qla_{@krlXiEfL%!#BNBayRgH_bqUxF<`8U$0{6>H1osHBJL=fo^UgZBn|%R4 zJQ;LW=Kp0mEc^y?_}0<@W*@dJ0a8=2&cS*|kpEX280@Q;-G&eX{m^-S1M>f_D$S@% z&Hr1kKQtHcr$!DnH(}v_-5rOVo7SKhp)_!yteGGsLu*l9ab5NJ&qxXnUSvj6Xa=-G zXoh}Py76Z%dOSjUwlj(;8kMxi>oum(aEjM8u2XMIwJ7#VYLQIyrWRo&J|F@n{qMK@ zECTGtJ|7&k^3nEBgK`w>|Jur@+Bb!B24el!pR0DJ+qWq>aAlAm0%4f(m^-d~cb)%M zI{#I!lAGU8Q^8eI@m~-aVfNUr&z73Nqs|^eW#B)ucG=Ov=BZ#RoKQw1wPZZ$vm&U# zX?3pUS@CdwqSF`=@tv6+sYNajCxgaN(+{>-A&>gUbWLoeFt?EVl*H;*pMa|ktq!siC z`xMw>k;PRn)hwft(h#xtLWrt=%iiJ$Md$|jc$sxIRWAR@*V&eVr)O(o5$U=49)?6X zv#^w)z!COQ%ghO7;)?kHY_NgX$!7ABW)zch!iwtFT`1bTi`U<)GEwRU_;K(%I>Gv-DRr#Pc;g zZkD}JKDYNi^4BjnM1aKIpZodMFXwKvc2gl^{++e`?`RtzIz_WwZ7jcsi(SHPy??8? z>BrCm*Xy^m-~3t8oPi)Rq}sa1DW`Uut1%mQQpVpy5Hz&86`HM91FATXR3 z(Z&HD7y$7Q&{unuCqL3m(>h@^0%0H&G`~XE%mFq^KqCvjqEH|WnUdQNe@bBL5)t^O zPutD>^&hz9fv>#o*1gx9vne?l-h1$UAA8&P-ubF~-^l$*+<)U|@4n#6_kQec-)B;Q z1?G4D@E33Uhl{@XhO2lk4iK4Z^LXC=s8fh-Z*jD;(Pb*<5MSH!va)^Od-$Y$sq{XG zC&`gYJl%PI5KlS9L&Vc6z3Jj9)1`|i8*ulf)0}7PDy7ruw1jk$a0$M21dOE9i}>l6 zPV`@dF~?88bW(&3kAwk9r+wc;MO62}_g^soxpX4>_W9k^q!V4{si*6T&h%8$iAbp| z2q%+7k9h!udm-aK<9bw!tqHVCd_`1sCO@!xw0X|RD;h+rj__ZpyDTuhHfs_#k1nLOUB+Dj0r?^C#Pddx^52dL?P)i3|=p4m=%YmIrm!{nn zjEQE)+3d2Ew8H#uPdi8J_o9@v#Qa{6cI^4Kv_lLB2`N*yZ1VduvKO!DESGGd)|_O^ zj1b);TjtNnm(8ay?=H)iu>TI`7 z1$DmLs)9P>z0CXoASAM#AT(Kq1kg3A;EPKfBE^DKuOV@Tss$uwK&V^LHDi(;41#2r z&mwz3)=fJ|cDsq%Nmh#a@B(!O*{T?27hVm;rAQBrgyK@B%b(bI88Te}F=WT;mmynK zABPnK<3RFb)^u6EN_q!xOm$@VbU3>7)%yaHyfb=$GJBjqsKKNM=z(HE6(xrK zHBaWuRP8mGES?o+^f=B&c#Q9}!}waKRuA;p$5#XC(1q`40R2m$Sq+@SSpN=T5gIv& z!$$7eCqPkDj3aly4NVPSv)M~sR=k9alxjf~8X=Qa#Fi&?y`^WFr+-)7zD=&A6xRq@qVG5@3Ws4C9 zL{%_JY<<}uX~#r46U)swu6*@bKDnu}K~H?9wdvJoS_>QWnU?)GnrW{S8pA^1a$Pgm z?$B?TY=v&2S?Iy*n=UZYK85B6nPUc6vvD&O(@w32JWz#;q5_ekFH= z+DO|B?qEI1BNW5we5!rHM1=b%M$P`ArxlMgQ(G^)^zzWsc@S3bhzS5=o*sok&9xN)%`ai*z1>uNi$4eOVb4w0 z(usSdN=rbf+EjOC=jb4WZ2(`d0i;t>^j&NaONZ>plhxg6L`W1M+W1C2SyZaQWX#La zw1=g5S<-0cM=2a8aa_>hBp*bSo~DItQK7o z#EGSN!}RIQ0MZw(w$ut*PW8~^vLKC+N-xU;x3xbX7MI*&0^(*_;LpEr+dvJFh+WXDmWUO<|Tm?Oz(1|JG-cmt&l@ zBCNJ-t701#%M-3v>B=M|w~82)WpW?Fz9sv#TY%X4#y(%H(=QguVhO6z9Jlwd*i~ds z3&E-tfUcr7s8!^#OpjJcMU*+2Vt#3si=duaF^Z!XmsTJvhAX|e)X%M$Sl!<;qS+z=;Leb|G3};@v0#XCb!9zA+VV5oP5&6%gyC>>e$OYq`kzVCmXDq`o%Jts zC;OMVQ?+I8XtCGLs!WWd#SLMZJ5%F=uo=L(a$Lw@TJWGoMZ97WY1l}Pb;ssE@s2T# zqZs@tsnp4COXP3|gKBp&rJO({@tthBkARR+?5my{Q3PwQ}fqn_`%`9(3y_UInW+^Ksu%TwJR&QcHZ#1j^dcpK-ae=NY2>=ly0NYEfPSB8R8 zFdh>M21Vi-n%4p8YGeH41{j|g5zLUwF?ETI=v`UAM?x>J-y4h$Y%G=xhVWN8B>e3W zN-(6LfN%^!!-UcxY>|h&2Z$Zb@XCGS1*WRd=n#ET9L*<%u?*}coIK?P<$_4Os~TX; zYiJT-;b5$ruP$D(r8`kH5Fk3;qeb=uyP9c@CXK8?PB^}MiVN7&yX|}eBAHO7v$_P4 zz5w-JaN#fSOqdX$@cG@{r`<#6BYMHY+d=c2rVF64om(`e(+I$@uH6c)5K$X*#d@rhH9I|5B1SaU1 zPVCUen0aPwZI>RIKSwhTy2GEXw&C*!IkKpI&EHi|a=wW`Dbn`qOlvt-011SN)tzGv zA1~5jE-A-Bw(^-xjWhXSvN%IP_*`M;1D`95`+cr}xP7j0Ar&M$vcNaPJudUcMep=^ zqaEf84hDLDce%|Mh(S6ADcgLpI?NZ#qws4-B~N2O2Q~Ldfq@~8ij;2!aLkIH0$A$k zSRhQ#Z9+xiZR3O<<_PLJA29Viia|aTq%L+2eg4G^G(Tqwqk}Sc5vdw^XShbB_9U!v z%!@hurGuO`OdX7i0oQ`yvcbG=V;vn)!mj~Lg?ib(kg2R~`&%B)p`Nl^UKIQ5o_ zA2Y9rSI6oaqBnNh^aCYAs~uBJHga$4J}M!Du_5HE-CHQ}P0$YWd}&eBJEb$ExFGtr z;EO@ku!m1FHR60?xN|;14lGrt>QiHT6|6p$c8IpM?+v}$R&;YshWZq)N)T&j`2%DG(uNZ_|pVuus`;_9s4HkL4K4(ht&rc+sp zUJa&$vOyHIu8|WwCfO(#7$eT}^$K0lieb5EAygnx&}S4^4+DDQLh*HEmywCq?LnqNQj%d zaa@lH92Wn-Mitw?J(OsUiSZ3*Ke1~ps8vFz&)$u7URrJZcX%bLCNVM77w@CF$ zlEeIC{9w9c?`f`WFd~_)*_O4M@{`GXCbEoWaR`ananxDeF@Iu9I<}SPW=6TQmU>Vl zIOgM-bS7~?a?%mFO zBv~T`naXZ$&;UvoQ@9{Ti&fT1PIuBB&zZx77Jlh-tVKCfnU$M%*~Nk$>Vv`1yY5t3 zIIBWKgEj?*nj2JT$m*K4!9R{+nN?o|1${AqBEZ;aVkr~6CSG&A2eBr5K=B=L2R<1n zy0e*UUcOEU6y9msUv%}(-c&i?@N(A!%W}}*<*qQ6UAoKDK zRr%#c826>oA6gDE(4&@b(mJ&ygW6!G3?|GmY~=9mKXoIgk5?n7yK3ZgSB;$Rs*%&( zq9gZG`dJQ~Y7QGXl@A*@l@A*@l@A*@l@A*@l@AQumBR<_C5w*RNMJ${=PX(^6HTTF zh;@w(`RM6NF#9-24`i$af~7*7^f%WP2=)tqL^G5tA z5y`mowPi@)tqG1Ay=obEF-rOjNBAJ$t8%|g-aXz@HaY!Q1$dE)q~X&XUqG&=p$7_k zRG8KJES3G$sOBArx`G2s^;c+7J|&w@L=r=8d*YFpNBJZGy-#Smu&$FWWcM$Ec?Yu=HKR7 z-N}41pLpTwvurjVf8lB#|K1DaKBsdWTtCjC4*xG@8@Sq_YU3K@M~8OXw~< zc_u%>+w@{Cu~VPHPtdp(txO$-683wV6ikTdRWM<{pXp?OG{<)=umLaAW)`e&u&#NT zCeT7P8cJS6r>@q}nA5a2^~ogW9dM<4EcLu@qmHOzNr02kKbRVVR%j;$_)* zEy)U@h9g0gF(W9{aKy5)ji5>dsWwt8 zS5elDsKC6QBd7`zZPsih+pHMz=EZ0YF1f52{nv|28E3_aIWI2d9C;qsHMT1bU)EKC zJ6$Y`Jm}*9-rLLMqfVCWZ%y@dGYYiD+c6o%VO4u(G13XE zuJ|=Pyl~tE-GUj73g*w5KgV4N#9;JWmj(PxE6W;5ipoEYk#-soMmyM}U_0?;l24M4 zQ)t$p=Hu-P%?b;>ix$}gBQq`=jPjNQe4Dhe_Fxq%TZ-r}pR9@yp4^=f(K-znL->53 zna<$F#t;;{(#^Et#l{d6yN<46V91#Fx2vxY4^aFpab9S^V0&vS8ZsNGHB}lo?db(6 zGcC0)GEVB7XDHuhJ`5A$eFh!9_4467=nT5uUZvJ$gIp@7Yo|58?^7RM@GM_IXbk&a zMcHt}f95R~5o+2sW94jkZO_f0ehaT@T((Jm)dZRuc0ceQYGh!ZWns@SSWw)^z)X92 zc({Y#a;}9Gr@~~L71%2?vsW_h&=BKfCaRe*-DayP)Yweb=38L{k%1iYkPe%+uI3Xt z`>?OnFWwD(GAAyWuQ8NrBTTwUNM=PqI4D1Z`0$oiPq;)*GxkjU!RcC21-{h-tQd$O zMsBmt9b#J=?IUsfCzdcByIjDoMTCHeAGtg@0qrYeOI|g8xCvyd?SrBe{Ts4J)waE5 z(j(B~i|q>aXH`>w75^3h^=!Qjc}tZq4e=dAN78am4;fos)M~4714pc_;PfQ&jd-k< zUlyHJ_QUG%K`t>Kos4#V@OxhsSaV!{R>>JPl{M$Dx%TbfyYDS`e{O;HH*kOcwol#j zsdv5o8(-v};~|R+w^`MkNAJ6B?90OV|cO3)29K=92jL@`S^Sp@@jnYhMvYpEnF}+90ikE<% z`IdM1(sz{|zN@0CA6x9t8iC#buy-NKfHJvBon;_a_D(Z%2tpM0HN zGA_jrUu&15U3Tw!PV8oJnU^vk*f}93p|gphr|^8qw*C1_p%k?DQuz>IS#HVuwV@YO z3pwopm80KuD&QM03_y((pSZv-3GlOT>*;;o5veR}MgK2?P3lN-j{#%?^q?IusxAAB zF9P*e@jwkp7Wm)uWo8zgwD;XN+UI7ue4}6HT<&>;m9FCQ{eC&7Qog4HNWbLJ%4Eha zHR85)1=<`}qe7bjIVx}s#! XA^^`mbQ3V%!TR$F;?SIWIEBp6^GTO!Ev9M9$_eE zBTXVd%MI`dpM{cGdmhwZ=uOSMAvT1*|H#FLkethF{gS|t;u{x*v6={DHBoHyB33WL zh$mN{5Jn6S6JR8govMHUAyq<9j;F}9OuO7gykr)Lu*XG>s$Q4U$W=Goy7#tQ-bChg z6=BVuzv8=}x%v8Qzx0onFomh?avURsPwVnmKD0YhuFs`vLoSc3*eb==YY-(pe=Y;G z!QXudWuNo|swC^V36-p1D@_rybL)xLPPGi(Dq>k&&(f`;do(S2Q+GMxoSJ8nxf@wa z(Xb4}`tlx|q?z9QRAZjxynWco!1;vqm3t$v(En_UK4UP@XLB@V#SSow2UDe&WgMC0 zmw5S#8iw&u_G9?q5DY&g*OND}`w}CC1H$kg&>D`EyptLM!@DUR3#6VEga$L*ZloZg zfcr_AB=D0uwxva_1ub|<|EZa^Fd+Yq-4&#!2*&&j1+M;23PH1Ls+cTAtZHbN8OCgK zFVmIzH4kJnhkhSvzkWa`FtbbONXu&nWSwHnGUXf-m`kZr(Q z`I}muQL7UkQh7FEjMY&lH?RHQs3AaG#iZ4>N}zDeGr<~^%Jv||`4BLYjwIGt1V(BI zMsH;i7!?wbG?ZutZ2Y%cKO8n|K!IS%C{|U~`O6aeWd=QuCgo_*bey(dz2NGI0z6L@ zlDW{qgLbh>$^zn3NqS)2U zv_tr?2#AySL`62(a=$}G@CZ7hOu7W6n>xn?bUYbW2dT(%nCLaAh|$$+o^sKhXBw^MXK#oq%TG)qS7E0nJF~D7`oO2BV;Hl z3NV&6YA}jWjfw({WgUmn9%{J<6=C}}$RZLWY*q(QMMWsI)Nv{j^iD-Qs!`D^hf)y^ zLW>x7D#8L>qauLPWBM;vdmO0f?vY_94N3rMBRSmsM;5^;2Y}~Fz>P=|EW)y>O7a;Oqwtu&j+wrCy(z}z6EGM*70ciRFDbt-YZUe9w5c)94PSjs2c@keCW~`&m2;{s`Hna4ssgDh%vNirT zp|lxL3c)ObR2|)H1fq-c#FFt+7K9)1R0v z2>f`0mNFhopxa)()DPB@ST57pet3#h)@Ah5)_U3o@xWMpZXdh`7<~}lsAaDon`tt$ zH(`ooo^8L$)U>{cq6REo+=i~*>7JnCGM~EcQN&|DbyYjVn%9H>pS`z%va71{eb3qF zqrQ`qF9;;yK8KL5Kq85RBnH&lN2KZ3b~k+oqldSz?>*jqzA+q;@doWp*IaYWuQk_Paq4<$SEJUDE$6wGRDd@*&8Myc8Kqvev28e)Xk{u;m(o^asL9o| zD0c~_$ON9tOQB8+syLZAFZKtQn6#xBar?XugJV3AvX|7$Ix)Kgo19F&WN^9jLa3Hp{}aWoKQ2p_o_tPt)k{{XO!BYL zSou-oWG(|PJ7^4bcFZixSi_Jh0K?vjM@&c+u7FYtu-UQCjF@UPj~HFPgqKBxaij5o zv2}$r#QL}#^RecH2PqydUUR8P1Sq5R4v974P^yvJ{ldI;8d3n)tlX#c^@RE=T;DQ& zSnW%cj5`w)z&NPvl{5*UOEE^SefecYz6JU$vKpc$*+ zv~xNI?P<9^*9$}*HiEGHosP|L@Z#$CcRJ6)m8G0nio7e6BJb{`$h$i!@^+^_W2bvl z@WrWxJeqtt_O-P?{{Z}u1T$Cv=hd~sZ75g~Ls2hWJZDNVhjeHLaVv!_{#on>UgGn)*_v!RavT{grni7#Su25ybx_iumLPjTDRb4;0en-JO37IZ zC8W>`I0=~Y8Yt;}0*=LH0&;xA${S5Ip8JZjN++oYyENnD)PvH_bQrWbs~eY9{C8^oh*gyFbXaR(+|zKpe&f|>r zs=Ods$c7=`vGKdrFy6K@>fN#tmcCO_rFQ|TF_SB z7dRn~h$ED@df`72mW9R!qUK^~YpTNHm&RHSc6{#;fC65sxQo+q~j8Og~y~ z{xCf^W*izLQU;FAz z>Ej0>o&KinUmLW2T!gDH2sXsO+8-7ZHlM5#$Y>0~i9d>CuUpI$mLNR#njDA2Vs?)@ z2!jF5ipd-n!#a@82l-(N6hoH)6~MS{T^+^GZr%AeFZZyR-S=g|oy=h|{`8ffP7+-B z2r65*X_`z!EskPh6Soi(dYkwmNWdQ!v;Y1qxD&!Inuvy+y{W?PuO^f~et_T`5K`yQ#HCq~T^rVQJgGxV6IN$8&90<0b9P1_La}NpSS6~GzzFH4t zQ4PZ-7!WVBy^4`JfJ)J03eekJ53gbBcdpWDEFpJ~XG)7!YHZzYVYIz=Zi59XXq-5t zgESs-mc5a6Cg=Cbe}$wO({+n0vxFhoHhWYyoF2$B+Ci$!-6}*uP{NMr`{~0G9m%r8 zKOE(1Vc=u)8`AHU{RWE;R@`bGw!wnv1{%_OHdzgboU`qW9dX`}vfp1pP!vvW7BMUp z2yS)=7e{blOOLJ$x1FLp8_ICi>v)icGPy88V_c?LL@R6}p|6C_xm+W^`3fj^6FvJ^ zV6fMyOPk0_mMosu>^)k<^=A=lEKyU*atKqz!Mf4GpMz^X*J4larGz?_-d@eKCl1dN zdI5uVVKzt^_?pF8Stl^r4i9Wv&j&#qIvW{{;RKe`*2aa6C5jKGE0r5Z>4XCr*Nb&b zzsTMW(zQ2GpUGxGk&dD`GNYb`4O2-c8KMmC0>j;~8YlSEfA+g}E;t_;%Co#G8^R3l zlBEwZd{I~U%E`~iOC$D^8$v}J@YtWbjw8cAqaL#CPmcc)yIqu9!%D&y-P3V)*ob~y zJN$L2_O=Ne6#W|VQoG#<)#32sCvDjR7YzZ3D|2KdjLvkbZgG_x3oyVCS^OC}P&z7m z?3}RjvVBK^ zab@jX4BdBK-RAGo2T1`w*8BwWIr9R-%;-hnxC}(mtCo>^jB?)C zi6T@F*WAWBmz%KH8?6^_t0K9pUHoI0G@x}>3mTxbZQrJEgABBdZCj!t*OmcDKU7t{ z;w&vKO$dW4XgzI`Y%*g4s|oD*6Qa>ko+sdU3Gfi1K3D&L0ny5Ds&ngAquV#vb@7}UV@h3-=0Iq1Gp;6U$#LLxzc`B8Vl_D~lh{dq*vfDGB>te= zC}RX~bT60>#=iHS>w|pIy1ov-)@$apWZzY^>+4d;Yz=lc>|)y0aL}BTz(8GOBXWp? z0b@mk<<{h)$L$rUG}^1X$|rdz7ag$DZr&sGab5aAO)bjxR&yqOxb1_Saux`a`%6pE zjjYMLl0GWA_}u)W98T(gqAL2`%xLrHM)`!Pq**9!!?9J^WEJwJtY*3a^Tjo?YM$f* zP4!IW(~^w&%2y}ah-Sm}hpINXxw^6@e{KesCzxl-T51zCuou^2h z^_a?GUb7?$-f${!_E?(rn4mPPz337p9Mc^=YpAcg3qOQzs6{I_jzCE<2-#F@Z zPar(k57Tm73NH5qN$Z}Nysp9cXcahv^^28!>q4Fm&$kdRn+)z(OvmmQP59S%VR*i4 z&%IaKqVpTlzKWuDE{&=nOr6&Qrj~8&aIZycO7W?NU~=Rf>=#ahAk~1|{86lIdJhc> z{flxNPqv15bdbuw>TIkDtnH>W6dQ&_A&vY!k@ zDk^Hqhn@e}M;d{!OBX{8e?fukO56b)13g-K1jym}UQn-_-z;N&jT_?{Bds;uCkW1% zz<@d|+fX+RD2Qj+>`Bvrl3$xAen3f|ni){voQ9X?d=vUb6aF<`Xg8n^|9&9! z!Jh~4PkROy{yc#HE(cI7Rtz++n^p#D0U+?Bo~S?)7A_?7$@jz(2l*)t!YoTC=8BaK z5(kcTZ?F?pXm_LSPt6)^(myn>2_D13lEsd_%$XsQwR>h6kIcwT$9`3gzURsl9|Ie4 zFhAq>;Iutv4kuh0GiFu{FR^m5T;z(e6b%XdzwGPmC79DSoU3eXlKqD{KfCd}UXDk4 z(q2^P$uUI5;cmX@h5zxC73*0lcU{Q{`vnDry_8oc?5RVDeOqBaVjZGdldxBLq4LpG z*ss6s)>dKvXp68fI$% zLWCDp*C~Zuo_!FivF9|iao3+IC}_3vSlpi3nrB6)Vk}34rK%1oMH=&$x)gXj83iah zwaThYu{uN8P?Z^&y>fHW{OB2Kph38$b5<4BpJOfeTf>XV+@a440sVl@5{Btr3w3&E zIAdjQ4d%Vh%p01oTu}o5bbH+dr=U+>U+iADrk1w8&dbuL23&`@b^Ruwao}9w7-bFdRl7hkp(@Q3#w9uXM`aY zxmdh0ZklDmR*rR5j;}3T^?TE-HY8J;($(3Kvn`ZmHuB7{lW%K8zT)_kcANX#zK-6R z?H`nTA%J#olzOMPe^Bh5*8V}Ex6=MW&^xvLgM9Clb`LJ>(+1Fx2#FiffHmUstA#UH zn#0Y{BByq3Vghd&^~AR)ta|6k;V@R=Ath5sQCp`%Be518(@rHzHw?l~;h7QIExa>C zqq;Ii+jO03Z_Bq4R_qq~f)MtF?hNm-uzG@i?+vRQ6z%mwCVO`3*fjJLtMdDg8{pA4 zxvDT&&a4p{1^+s;^0O}|=EnLn zkBsv;Jh?h2JgGW2ngVA#8TN2eb>>m3M}4$L&&O#k>g6#DKjS@y_sMFSAP+G90SAF| z?S4gj){OU^t_P8LyRB&%r?a2m&=QxPjVp3GbUacgX=vi`+;9#Em|JDaa*_p7gq3a` z(QKxdV|uu?HMb>{WNfW1CJxYW_R8FzrI08oj&^F=oWN?3t{fFUs%wue_ZRB&5l?;R z5VUQRi#&q5GU;TlYSPKOt(B$qi;Xkx|K``9%ep~%2$i`7reMHu`IEDne4?Zal225V zaNORPK$Vg3{#mv!1d=;2ORJQu6m-CAST+rh!-?TTS8;<*?^(r61wh7Us_8^j45vCz33cK%hCS{58>Ww8e9uTYvMM$@7cyRG`8(W) z`AbcwwYfRzUHXn2jjx?W8|jlR=Hq4I90BjURw8bqxs1-cS{RB9`J42tfN z3L8T~aWrL4yuzt*h+#xya9Vuy$3Z<11=VeBK|!jiUX zCYf{=JWf-5+STFRElX_^9ETrbnk^p&|M z83XaQ-MXS7?Fu<$CSrFS?Kzs|3UOC{>7^_~sxREQ7~dS%k;M&C)|`6qn#KqWiHJgd z?76$-6Y7SUu^-tSPHNcryz#wn$UmgV$zl*|?O_*(w@OAy2XB(ZT0(AMuZ8-SAMZV< z@f!@9Q}DiT`#FrYgTyy9ZN*?RF3Pqzklr z(2L}4`=Cc8-}=Vil8&40^Q{jq>?6R!=y09XL+H}fMCf!qztj20{l3#PD(m{i5^heA zY+IaFS`VIXd}%g($qRcof#Fp%#H(CC@dOz1hOU=$7<9DVm+DvVyrP^uQ&01-wZ#IkkFIJT5)1W_onN~*I2s!}@S|onrbTpgL~ZzYGa=Tp zTP5eq(z1)a%GjS(vl~Cx>Td~r@Pw3l)8d_AOLTmxrO@%w6f;-jXbPZPtTAimcr=HV z%O>Ti5`?*)xb3jWxtX+Hir(o~hDbQmBI=-qf7Me{JcDS3qXe;vR8mnVkxJ-(Mc8L9 zhk(%eOhU!W3u}n3c6zorDa&82`mp90%2MUGwq6qk^-sU|GY>!Y?OWFWA3j#+;T@Z< zzUPx)+d^#4#A0>OWL=*K)_L)ElzKM$!o>)E$Lio8QMBsU;aNDQ0M1A4n0^rogIRM~ z6$ej{@WU>d1zRa8s#dNe)+o$}F&)X_F!-gde9M%J(YwBOZaQH){UpF;B+t!o>C$le zs_5W9qiYx3^pMj|3RN7&BG(-UxyGJ7_r7lhDU2)czjAOmO6ZJcB~->bHHH_&8b7en zTB8z*5*zyxWehlc$vPN}zsRJ(mpDU8Cs^?VJXL1*e44LJF-a;7e4? z#i|JaS?lW>8I0YL zIgWMXdE*vs!0Bp0Ba0xGyoy6LD_~?!*nOLPrZH%~SKi=|n zxcTY~M;bQ4J#jGRGa2)l4P)-uXQ^`d9{+l&@{R4>3WDL1%sKT7_Ax`u1BXMiHXOzg zt1i75Nn>BPYM!P=uIHy`loeZ7zN&a-C;v{f(rB3DIE$_ZOVgxktClsP>Vx0=$%z+3 z;RH_WaAq80%L|v_kp0N-KJ(Fg?s>;|NxE~8ZPWG7KKIRAci;NG&z-tFw_m^CdFMxO zy6*E^e*G0HjH%$44?T0}*&qGe5DCn4dnm9YZum=P+^{mX5y)t~$T2<|rR^_0=xVb0YxGPE9;WRUX^l0TGg7S*>9k<@~gP(rqkq_QT z+@AsauSXuae%IIsH@<%2z!FIw1N&};3exO%55Dl==bw3g?70{RANs~k4{!e9&`tmA zgqtO-FKO1{0B#?4&hdK!=)s;mCxmH;uDHNX8dI;{SnDPzmEEDEIo2BtT^ADVW~k{8 z_TyMlt$le`G`NoC6^3ZX4D09Kd@Hf^Iv&zbd9k@NDSh@l@t$W*CBd#20&mm@?Ufx6Cvu2{G z;vhz$rUoRnEI4e_Gp6{;x9&FxMLLK|D(}g&#%7cS;~vfFc%~T`^V76lx`h>C>D5Oc z``&31)Y$UB{tl9xKB`LKgy^X7dbL~_j9|i zzu|`rvoVoRKKX;^H+=hp>o4&NU_w@z~4jKJ>X*x+q8 z3tWu6DOhfslx^&AG4kC22zG}xPHT@?Z2XY!an=s%y8Sm+c0{;B^D>-0_9$hW>zb~^ zo$Q1%jDpYus&u_le7J{O3OwAWLLOSjq)+WWcX?o(ksV-bIGN3FlggZ%4RP=eRI@Bt zTj1Ol7bDNP*@lF$!|#)lRpjYRo}n3=>r!2=toCs_6`ifpOSlE%tSGrUChQ=)*zi>h zrzy%mx>5a&PIcdkw){@NwyUhN4nU#4$`7hMp*EOTQMv5(WWO+}-^^+KHVo@G$>H_e=n>3kiO?v|5n;D_?}(5j zQpz!JM2MdmswhV59O3?x-{F$7nWR!G;#A9KA zlrP#F_1CbT4*9)1bnKgyqHeROXb&1k>FTmlG<+K8BugH)w2J7A%Qzj{f2o7E94TKR z*N@(P8%L}GnZenK4#pP7%f*muvn)ChAiLhCA}#5d+DBf#Roc;GZDC^oA?y9t6ixdE zsvS-(^c|}8{0&vyo093uk`P?}Hn~ofTMf zcCsQL?|PffJMAPH5v{V~f1|EU!1bc)wZ{9`Bb}a!dH>pc^#l#gaK3h;VT1d1oGU2J zfdW0ctTxkrIjpeKdLjx4&lo9?asL&K9Rs%A@3&2L#=Es%AV0VuNC zoNpBp3!t4>a_M0K$mF7#9;kzja(owV)*H^!z>BY(VEZZx{{*jAzgSQk(zPc%k>UA& zrCF}Y2LpcqF4NyaJ^q%w?X;a1)Ym#ylgs7AepqyT&vg376qM%R^{$4T3w% zN5&Us9LiyQglr4ONA~|w_{hN>j*q-_X(r6Av2CwnJD>}blEGsdblAS686vvrm_v&% zW$i0^Dudg#;@GZ(tYQX7st9LTZkD^BvR#i`o8bx_^PLud%ajh6#O-&|6 z^u0g?Jzdk7Uod^vX=<9IZu!bit&SBj79TqNQkA6;cI7C3U6i|pEepm)C~66d!{WBV z-WC+XsssqYvlWe+{kGV}5pocgmGVW5!}K?S%`=smYiM&+@)p#WX0D=tue=WSknjKH#Mq;kZwdKxpR5Q3G;lea_EHeS4>Ba%p=VjUg2 z2u{4qRE<|uZXTf)oa+xVD@_q@v^4RjZvms>Nvsj-dNRvAxA`@k3q@8i91Y7Bv`Gxsm|pgc zNT)@&p0T+W#MUJKlE53LVc%+Ro67Dp1;sunp=s)`Q3LAm22lf7qY9ebZoeIyA-YSy ziaG;{h%bE{>f$ehQF-b%C|LxwH^AS;bx$CH>1F_GaDW7q(L@~y+_gb7$ye_E1T7!} zGmPKVOJip!p8B@FX>1F1Q}=B|ijZRUK)R`&`iM|jA=xUY>?dTpwXS=T69D-Td%x8a|<81V@a^xNKCxe1DUT={0WWI?G z6W4jv9;RM*91tSh4WYiJA$#aCjDJJKUN1Qjup_eXtj1%)ZV@cJYPZhgm9G$;he{R< z0&~9#m5IiwD6Tjw?7)qJO-kfV3w=dv&HAZ12IT`?z!4*7_(gTvE4-qd?FphmVJliD z96;#Ka2izuvEh``!R2USVaMNz3?dze1^=&nJ0=~hAp_5JNp!|IW{A_gLmdLM+Q=2v z$y7sj_qC~F+7vx+=@OGksm#szG$XWW0;Q9}x~qv19We3+PG&TUnG~>ba6mcS=5o)< zWB~k7PMQKmdjrKzi#@Kc!b-Y>(!i?5pQ2^PN%Ls$sC{#i({S|Qf(_WyT9c~h?@6RH*ENZb!r1E zZ!yWG`ja;0$tR$++hn3w^K#htRuR0~d!4Hl_(o=TH(_jf>R5?f{&+>I?oZ~)noNz)5QB>2436`Ah&+d zXX^=AWm~)J3B8ZEt{vL&pepKaSw+Z%uM3R;`U>~4Q|K2TPD?`h}!O7Ccgh&fBq z&Q=TtM1tr?I>HO@NP&NWO>&c^=zknALs(N7T#TJfP7eeEF+YlOsce+$q{0dTFI+m6 zBF7R}kPATmdLAN7Jv~0Xv@4I>|5TO$rn0p@;Mx(>=k60T+w1voWuJDq3mk)wb!$?o z)Cb3Ic@2?*6f4e77p-Vl@B=^AqosnN{`AAwtR1|2-;YmYagSZ`^J{_q{)R*K<$af7j0sqbdwj0Q!c>_ZE6b0i)`UTH+>$ z^wddEaTQI)tOv>^-u148jxdkE8I@b21?X7U5b%WR!PMM0$iWle&XpGLO8Zu6SAgZJ zp%hjUJ%AmpjRu6+o#$fkNHL>Z3+(K$Tf!5fVQx94&=%@+-|Is2HkLTbZg5UV;0+}m0ZdsKvjeVvL565c~;@$FSs)a-R`72GEXfb;2K5v*mg5nWY14JJCTz`Uui-?r;P9QUU~T1@{^efuNG$@yVPzfKQ} z|G;HFo_Q_?3xemK2Sk4cq$c3HPSiH8>pLqymZM!;^-+ePR#c%v?JpvXT&-sGjz z+*3MM2>F2%KtF~%#bwQmZBX<8@C-fzzgq}_EU;4?!v**Uj^vc`x1VR|sR8-ODxWf^ z1#N{WQC#L$&or8P^h7E`UuPoz4fx6}THIw;&1Z3=zH`saE5pL-`kDg|yw)MWI{fz9 z!a0z5fgjvhH)dBC1)8uJpn&yCQBy}$xV(CnfK*9%W_4kK8qNQQ3q`?;!%oTl1>s@? zz9uhLb%_IshRDDEDpKymG9N8T;`UWM--uEXKd8PcT!K%Iq?9%HX7U7r374>gAsQWe zO?62Of_UM1wX>%b@F-PP9v4F>VEy^2A$1W!iHM`A>|cZLFM zRMR93D<5&BX+#NvMU>49L#2-9mb3vQi@j}m_VpC}rKUZwzr7lh~thAVON1?BO|$tROsl4#b$5?n6PlseX1k z)l1BB=J`L^oPT?5iDR4d;RaO;*Fd&~Cs)3vsiW!rxkB}9UAGnz=4V2ra_#jtXEgVK z?W+37qd(2nhyRT~x)TGrU=EGKc5K$vmWkP%9?rkmKyj={kJfkAmand@aD2#QS1w%P z_z>7YrdFP^K#(QkGx_kO?0yg^pYZA0IaHKL4r8mw<{Ofx2Ibn5G!cM_X8dli_D?Js zkF+oM4j#Cb;Ysqjs0jFit$6x|VMuY%Z_I4mHEPXCzC^rjNwoLr2jySt=Y^+NSA^$QPj@Qb;j+{zHf1?SlnsW;a7NAMPk+v`4+g~H;-)Gb zhAol7s6=b$R?q8!rj~^(ZmXR=N8gn6i$z_OV<5;^W|YpQ{10!hofDHgH+Cix8be&4 zD(8jEnNf*Y)LfBhvV2_BS%AZAU z*FcXnuquDN&#wm~h~LZu=L00BQ@<0RU{6@}Pqg7LJVza&*{K?xvy=W#S(zJ^O|TeG zldjz?cyLwj#&x=$WICO7&-nvV(bc}UD^22bR$6+yvUv*h5WUjSTV}BOTYF8W$FK@(Ti~`*6u*d#}!I<&bU;9IZe7*bU!dJA|oc7>`bu zH@z${;zNpxUrU%S2(}e!g?c|p3D0pBGgjTA+^s?NHI5zW*S37^b=uqPcF>9X@YtNf zACHb#hf_4Vj>RqIMbTu=rE1D%uK0i@C}~brxUFO44LVABUtR^23O3xczM5l4{fwo{&gWjMcO9 zhs)ZA)2A_UtRWc}%v#jT4zc-O%`{`y_Jav(%v{_(e9g+-b)3s6ul#<^wAZc7-Kc9s zFuAU<@eR6ST#Rs)EhcN-^opxO&QyU_u0rcv66XKPo2r%HO4>Vy&ES%8HL=}=+>H=f zf3T_Kcv30}Rl2^jiX;_(sxFNzc&K4;k%f7_RM4IR1+Xpwyd1EF=ddEYGM5jLNf3#> zxalBKN7LSE6d=NBR1ozMSpevs&5z8ZWjg*WOf`>u*+l7_xUs{VRKz1E`uNOn$*RgW zbzSS#GyIHS$?8GEEMLoygi{XiBVm(uek43{5=0U(R~F@NB-FrgOt6(19Q1BOt2wQz zJ1|gDp0p zMJxDrW05Y8MS{l+<+LXoHRDKz7GkbuoT`fIXY!2VW6+Rs6=-O2dm0kO%zv#B&V0Dv zc@Pc-5Y>6m)M9at$&gSPlfH?%U}h=7xFM1uX;yfaWL}YwjN`N#MQ5jPH@7rB9nCj4 z4yM_Wm)9_s!fAdOWo8^Vn(dK{&ycOj_zdNmjL#6S$@rtvF9%z+XL1fXlcrx*>3qlG z&Kdfpxp^iuGL!WfnAc>j#^PBWpM-J~=(q?v)~w{TPT*FBMSgS5uEY*HG2_g^I#E=< zbAC9ouP(O8C%J!$bh86bznk=Uk}9$hxVA2Gr0*`uEmflhnZ`E2ljvu2|5A*#_LM9o z?T31jGa~h5xw(;XVo6L-+>6!h!5RuC;K7oreiXCz=mVDv&yd&Zj1>78QyMsyeP8mx z*-FbiwL32gjA-x-W{4s`skZH1YX?GtFpTeX;M;c73g4!ZuEZ^$OOzefOdl-6VPrz*b)ZlhjKVPYtfeM;($ z9Lnq{i-&1&v(ZMF97O^-tf*qA7Q_78NJ#Zzw(QjRKl||hT)Uj#e2DnlPN=BUoH9k9 zCXAJsPO;5m^r8G;F^P*|>2KIxtI6>y>KzB_8ys`g7axL9P-uO@LhJc3pJoCX^~HxE6l6?;oG?BF0llsA zkOns$=AQZ!J&@q~?;YF)3A#Z)9>WVn$6ke~jTB+xN1E zm)!`Er<=cST-Q9jRpTn@+u;I@T%sGC=dtwtLNH#Sk%Cp^uqF^_X0+ALgMe){MDMtu zmLO!c9@+!XuJX3Fm5&v_v)xXam{1%NJ+-(Zu`_8g$0dFTvzZ>xjK+)Kk$s#A&-n<( zcpL%K9HA8q=zkZd1q)}Y5?Z7bK`{$2;teg}Xup~jPloZ7Fq{s%{ZSx28X@a?So4EU1|ow|Bz(33efE%&xs-YJ{zaK6PM zd|tsHd31dK^slO{k%}n`(X?g_~fxa%AW@7D|U(h_GjUhI}&y5b|s^w_D%b;fX zye97aLKjr!dfuTz%G+KABJ$oy+m@9ALa!>=ZEVzVQ^q4nu@k;cY zxb0=xh6@2<2-Jd$&K5NnWqlIzWoHn%1JVo59$>>vZ&=dyZ;l@RI{blNx)P#)_gSP9?s>KUV?$RmqG!(6qbB1 zh2VZR@^GQENhj62-sPO9OR%xEKvpHarl5Ge(!@!A`jBxFp{BnEp!2ewCR{uoYJDc@ zo(=Up8^jCsIiC5Url0CABoudd{e3n{4c&zRTz5CRhZ7xCx{FM29n^WY7OhEUzR*rc z+0V&B^8y+LO~Lh@cHkhHFgl@=cmd7u#DIuE88r2Y9whwtfWsQ(B*bxKvM$u?4@l#t zXBu!n4fUjD4!Y+vYsSy0QK{;9H#lhUKc1NcVjdG_CVlm9e0$E7)n3;lOR}K;wDdUa ztv_+~d%jv&9ao*L&rlV+znMWvQWb=Kk|GN2tb&Wi@S11{D%am4nq}`cOJa%>>Ox|5 zo1LmA!C-THcykmFLa#K{>vJ%drOimbc(2aA<$Nhtj|NlyNGhTW!eqHH%uWsQgC?ut z5`JfWAvhN58CMAYgnGskf+InZ1n$72BnVi_Va5?Mz&oG6X~RRmTL0qpkK_2zCqD4P z-4A@|UC;dP^yN8yA>;DV7qT87eZq_q9jujnBIVdT-r-pB3U0H$j?m^d`CigF&wawT z%@9>W7jLOpY-5WZn$tiyFNo|=IQk%Oh}UDvM#GNRU(PLj?J_Q&uU*P5)9tNXnjIi? zU;OLMT#Wg9_eYWOyx2Vw3grCQ@&&@rE@X&@?1a4*>r+x?H6-Mc3z+SxG$pa^+2m^z z+B2@U3839feTR1MXIqr(tkQkdvuZ937Ue=T8-C5J%D3>c#+aTr46uZpEjgp*K)~Sp zEnL|DLN}y-3w_Wv$id6EQbZ)y6P7VKg+bDoK)bEWdr=(uGhHZMitBJxd)gQR;%q#1=Z{POq6IQdA_r2FV zl{oi0hpJPfeQ5!CHL8_p=x)TSqyOFAL)B@~(`fAzhC9PRZMZWW)L_Cjz}MVpyW~PSWrNyMfZO9e*r;od z!o|3P`zI0Xy6(&H#-`3*9?*?~XH&D~B%5tcGJ{uPaAYm$ zV#}UmRI}&M0G$mBN&X3rJ|8Kwl_Iww*i>d81;4kI*+jwb9c6Y<@OyWe?GyaoTW0SB zzxS8fIKl5jI;v;tI?_>Hs4F4Si*#Mn!6pK(N6OW+ zbUj#Rd5`P9GRu8j_mqkM=eny**c8{%a&@V$8_V!cu3O91bHK+MHVm+hb{Q*Ii?w51 zp{K62e^qTcrTvYigto1qltZ<%b%}O;HKn$jJ#B#~x0RF@}3S7?`A##$HRQ3x-iCJJ1!UIZDoS+ONJYJVBQM!+d8o z(sf&BwGL@Mb7h)r(c34^B?PdMN6gbTzIE-;>OJ|MzbJx_Rp=Lv*~ zJDzZU$`h0fWJ5RA`dIlq>vjDL0+V%RwRWwpr1Brq^$e1T=z2Qw!2ledxhy!O z>%8T`0bNK^H5j%o)tt}6p)b*8QzSgz6ys%T(v)DzgYq&hvt}Ah^+jM;e ztXWq@OzC<}pXOiWdo z4&bM~FoJNIpPaq287C?AzTun1>jcqYB`R>roai`zc z>I7*Oi|oCvofMv=eA{+zi#F!Ieslfdcm0NhaqdxxN2S0BZ#WT@emJ8Qt7sF=fgAr# z8)o&wm1p>xBBSY$E6;E?mD4v@p5bjOr<<-k!`)O)k6n3&zo{Gn2Czc0*JnvCVgnSL^h>WneagLBi^decR98{{N!ojc~`y19-36OK_|^WfvZWlO54(s%`{ zn_0BW>v~+!PHKV{wA+3PhwdSd?m?k@j|DOuOF@o>p~FlrTKmPLqn&!j%O|2Bk1l`N z3Noe+n`SI$i{nmks}n{1%DM(;JWs4BrysDx*CapSfv@#Ha+)#5Yl@AGD4i;xbPWGN z%6lI3yG;1@B@C)PJ__TI^T9zERuaZ>q14<3g^P@B$i#2YHjsL-ih{9?|88u9d)UUs zoBz8QM>z1`YjeYs{{aqhlKp{i6kruHjd*V^Z+f;a799eHi3ZL12EK7(GvBC;%Qs+0 z#d<4=kKOYw?Yd4#T+`dx-z;H3-7+n~QB7NgMSL+vgc?0Uss$M-!#H9_*c0Sh_KC?g zy#d0q<&0@ZTmWWC4&yD`F(ihezw*LEp5p^rfN%iB13_)37IqjzQ{rXpL}Rv{LI4B1~T0V(LU|%8DAqH^B9kcyt#OAOVZltMwA~ATt50CG4$y>H#M>K)o@$0M|O7 z91d!Q$}Yd7mEZe2YjJ{H0O`eG6zYEdoxxnJ^96hWiz<*J+b$al&wUG86*OQ&^#fU1 zdH1aVA-{(!c66AS?LDq(c`=-UuLf)bH`xjmSBjs?R#3wz*b}d)y0JtCuwc9-BR1b4L zuoPs!Dz;p4>);n-XPHA)Se#li>Zbry)Z>5xwGFN#*w(CKU3US+_cz z>+a`OZaC*+{qgd97;0d`oMQ6ZEXa5s%CK#f-;0#Si>^x7HKueF z`Mp5lvkNq^HYJ3YL^0x0Yp;=)UOfbflQs;sPAgJU<`WMI<+6rUZt5OP;6P_&+7mhNgKDn`j7law zsHEPjvUI}O;e;~y)sH7r7^2lOFtg8QGM=|>!KJGz+f}3W9f7Aew4@pg`~g%RO>)VM zRO87y<5?2jQl`Rt-T`#p?Rc%rYPFGaQ;rxMEuAt2Y(#BmnM>R zp^@3E{IbrP-k_KU>W&pMS!rZ4lDRBI8>tX-2usRWp1#Q_$0)eCC^y?>EwUV6JblV0 zh0FN0A1x{$@mDGWv(c4~St)-TO37zPUH&$d%5lkJa8v0{E9GxoH_W5FAf^uE$k%F_ za#$m|i;AD~Uk#igs-#UADapYQtp8fnemNlaQd^a3HfaN`GD0BkjEp#BfuvVeyxt1s z2=uHlz+3rf`&Ds>Mm`!CFOVaj266x()46&1EgzwDs(IuVF$;<~N8r2o42sH^oBvMl zN_uf^jadL1TPkgdS`cqLX(j7`NS~sugWzRTo-GnEx!gp8w6aD!`_ zxFp2IXp4C+Z19;JJoYs;$b~DkCh&(CWe0D<(TmZyGD8eV8sgoeyVfDzsp9Mq?{(Ej zDc9hFXI*lP@!rfB+pTj;+HgC=S1J9Q$9TsdWsFBow=s?vG1&fkL9OH$F*L>yu8lFd z+iWqm6pwMbh~a0Y=6>OuL0>8`cXwt( z5pVy@y^q{+?Z%IBPQh-XJL@;xcK?QZ-@WC=e_o#3so$AMgi-y@uFP(uAQ~fqUq0G~ zvL9A%aK=qM9yTV7{#daVBvuAzs96#-%J&snC+B)dOWRxz7Qr#s14V3PuKUTI#wW82 zA_il2L1bb;qA15O+Ik`*PWu&$eY8<;6+u)nVaBFpLLeD)iClh&9*U8RlI##YNbHtP zv>xYZzz)LsAcwLe2a}XViY5{bC?tny2FAG?$-$Pwi7_U+)56C_bww_ap&~E6X`8M@ z*6h-i1A=zyihS9@Rl}^mFzI}>gTI}XU&*xQmzTw&h_94a)tJDhLb(T|17RSeT|6lD z=PYqa9vvumFFvXZ!~CM$b}jxfBHPL-rBEX}Xzt^%>=h?hK#q-$Oe=^H63Z&`N103c zlwi<{Ns<)zL_Ub5$)rJ&%F&Pb^pQN?Y~}DMXWKuB$9l1$Eko@1DLCdW$^R0AN;2$b zV1cIei3{+%qu+jPRU?H1QX{m~OPznEpQTA35NA4y8RT4|+UPD)3e zvT3DXOiGc#>bRADHYwebmP#>QQ(m6?6!Wqne#PcpCP-;w)6VF`u?Dw{pNs@qZIdDJ z!v^M>u})@X@YCzKLMI^=GB;wRgB?x;@ck);UCGPkC?EDAUN;)$u7tQeW$Q`@_uw|X z*Aoe-6nuLnQ=?MlVY3DxNbKBlbdokH<)hbWTm}nq%ALI25&7shLG0ErQhr`U;#%{D zHYBZKMKkp@X`~fH=`>cONF%`*8v<~#P6%evojM6la?vzTri@;W@XuTq7uHa)p6YC@ zFjtR}FLci6S+`1Wrx%H<#S?d}1QSW;2K1__D%j=h?1;uPL>&X4%-RHO1i7E!IGgwe z-%KZwifqm|jOb!p{wC&{I#e+InE5%^-~-Je$*2MThf}nhjYx$|h@tVVJHMBa&Bb$muK$_F)Hj;w!TqH<{yQ zjhX{CgGuH78HB|t+cF357-z-$Q?xM5OCL|p7ot|fLX1tlYzU3by{wr6Tn%Olzk#4( z-f14uab2W&E{@KD;r2uv!_^l=%k2Ke7j+;BCKu;d9?mD3Vpc@2rXpJZAR9*@=_qfK zu-o2c<%G%EO%m)JA?0M1A!akFOZtce)8Gz8o=_{(bDI$jB4m9?!H~$Y35&=v{Q^$z zI#YSSo17Lhg4VCTY_n0~W_zmur!CqL3(5Fni~&h|S2%eZ3T9NM;)^Iwm3Pe;m0qX; zYFRO{PdYsvMs0dJ9Z*QoeqD!mz*F#=>Rz^(u0Et_ukK}w>Dpq8sZh3ZyCHnS>igs-y9inM87Dzjw{_YIq#DvMW!#V3hUbN-#FkXRbDy}6uE z0uANr30$RMpkdCSC^yWROZc6gG79d@%oqifX6$-GBE!HmnAoOo43Qf;Hwf_?Z`N!xLlgiy%MURrrv!NS@jk(+XBhJ64=&O11f-6=y!GVqml440tN0 z7gn6Gd26=%9UBzJ`(sTpbU{vi4QERch1jaU{0?8bN_gUhUets7$bOIwv4w(H1B zL|(`ggF7dyH1IR&ioIavwiRXWI5aabq3ac5a(>)!oG*R{kL=T>`)RjS&M6ZMKGZMLxW{e?g|d<0?O6S;u_RJ zqx>AoSJ{GMhcxvGnyqdCe_J`6kNE%G0Oqa0s`! z?EuMNd~WVK;E+^ZL8P8;`-m^mm31ysIhYnWtSegKT3x$V=GN$nws|#I1?UXwN^H~> zu2`F|K)nx&YBbK&RCWi6n#vBNnrawF+H^u)F4b7(fd_UNQdL`aRqxhO1?t%8-9(eU^uO z_t%m7U{^xV^OQX5o_4o2A z$<)dWV0EyJPCzga}JAh<-NwkY=|%rg#B2k8FbtyOLP7e}(0cUFGsxw-#L zfoZCF?LTFn$}VP)Zu|}7mH#E9o6Cki4t&E5hL<_oT3e%AT3egcXpgxK$>TB%MT@`u zQ6BuRjk0a9g}7pKu0esJy_sAeU5a*SX3vArna79^Fzj$Q^3K?g5XVl#cj%M z)h-j9Q^+J)n|hm)h1GM_De`}IMg?5q_LRdd3C+Rt4ZC%T2)b|@xQ+d*olo4JFa_DU zu2mIVY34d;tIynwUMbx=EUw}|)&Y1D=zV#;IY+{Iy%FGkg}BVAQ;I>>Dz#_{ zi8&A-g}(T^M>6&nRP4$<`m04Gm(8T|bMthg324hT`#Id^Qzk$WOl#Mw*xr_8_uMig zH{ukT6dZ6jnN!mpth=)*BqWM(Z`P4D zgPcMI9!)wy#Y^mev(aICKT9=@k#!TJ2U^}|of&K}_Q2|mv)YmN19KJ>`@ z9(eRa-+Jxx0+Au2cr3UJse`I@ITzecmr>4eUP|pDUL3sGp#k z9wgI;^SrEVZfq)|zL{$v9tr$u&3yygGRLR7Be34_5ks%W5L!e!IYnv3s>*job96JdbrQUs}oZ>3q5!3g3#5R*vfzL~+j}Z&YY>U`Z2C<%62&Wf1hp$V} z`E4n%j>dlQ*{jEXwdVQvo$Ao}`47MUu4f*<|8e$hWyzE;i{K!u6rbkGTiifzU^u0> znK7?!L9e1Lno$|HLnW@L=qDdFLerF9=Wc~nPLhbH^x+h%b5}(VYnD=%sryZT>oLrr z^OD>lA-5|W5mav7G)Zd3JZhv?c&pI+({u`dCq?f^U%2m=U;6HEzwi{+A#=EX<1@QI z_J!~L`j)%f;+OfF;#adbrPmdjy)Tzu+akH65y|^+O!($!QzU=Rl{yxgMe-SwqGCCH zUmg|T_ko0p$K{mc@LEsA4M;X39&O~B$D4{f$3^fbQv_dsljo^9_f#NA2=yu;mUQhf`Y zO4{D`ajPii#9-_+Ob1fx9MWw@?e(P$g}>`vRlnJfRz{?^jt2B4Ejbhe)>5Eo!A#0| zl!6>hMhb}u;RbK|vfz!}?DASh<@!$}U??yKj>Ax40UMt~q z`}>l)``vWz-to(yJ$>XWJD!s;7lB{@yT?Ab@2LmgOB#ZV3ffMYlxi8vp3=*eI_C3g z&}TqtA5d@pq>Y;<=M%U3VJ}AO-K{3)eH*M)uoDpN1b#94xGU8hV;cIo$-u`GGS=ob z1?yi-CnQ53SMjruVIgY2KOIhfX*g}MCqzT2+`WU*OUWY`h{6^IY2DMNK=v}k14^$Csq^x8!K+x){HeR|!V zr#JmSjzl(p`>98FJodp`Kh~h1WOVbFBt${?(M%6qB~l2LpIWO#{B(EvETUOuxIHUe zZv6IxQe2gT39jRo2v~b9;t<{j`mjFHo{MqvEXo%rGu3I z&s@a{@7idzE-oS)y2$l6j^;Hh8EzHg3_31cdD{>9g*g|E_RaR9# ze7%V?re=Zd3R*zXZNotw7!p7catzte7KQ~GPy z>q^*DXHTH(Nl)~+E7e(O0F9eKcMSKVHpo4x(btm!dJF~5oUs7MO;-F~w7hUhW(-;f zi!5?o>|zWX$EuZb`rgpj%UMtl8X@#W+gzWr<7?aJ8m7_|=@nDz5Lu`EdoGhe15LDk zXX+dJrf_0gO;c`a^xn@HzK;GGPAKUMEABIu`qMu+W%)6_G3^a~m2g_ruWw9?Mkn%( z>2K(p8cuiLuuB%C)?UnbL*H~xxxsWSa`{c`7g`5m<{SE^u`zmoN5e=2?ZojcIq+vi zANZ^%rdiQD-EAkOU$YUK6@C6LhdPR&pC^reW+n1?7UWYOc668RN-JC^yrFMqcmj@v zJ+>(zpPe7<7>MTw*8d$%#;+E(W9WWrhh7KwwPPcfd&2+%VF6cL#5)`SeTaY2B zbi1EhZ_eu{Q#NaM&Uc-!~Pq&0=M!uBT%;*}2C_Nz}vwrK3p8eF#*MDU1Lf6DbiaxMr?fb6#{euT?27ju? z>b|_Ax;^61GLq+h9iOmhfm8?b`Q;Y`0}fyNtcv4LUgZfay%~tU$W_@8tRiIA8XqCL zu-koSJ*7i*?4ZZ)Iv!!R34~!{)jW2!eK&($)-0N_%Q8qab`Q}Two|LA`yAUnsNQU~ z&_)J0+nY@)TtLW}15m-yl0P=9un+m({$Jj4^UyA-5Bpx>68GjI8Y{Uk6QHMPRRMi~_B^2tS(LhkEZ4dd z{2p;Y@c5!1MhdyzlFGT>teO|HUDZ{k-)bUAyPLr*7H(yWe?g+Lyw(#WCqI!MK4>q%hvd zuN208DU4%0nC5!8rxC^{dE)!NJB4v4w;32md8Y}+Z4@=bxRtm3SN1y?w}@#SYJl-T z1B_cs2_Cl));+_)$Z^eCJZ|6#3A8jmBc%k7>$%OqILtduFcK)<0^<;G`LEpKzkQf`fdNx*j~mcxS-dLj9)c zvXP=D@HX(0C+p`Ocq0V3NBbJU+uH!%nvMo8G}zI?g%0zbCN6X+{mzT-I|uch^_=o< z(mPck;jk)PP`J!ZpbfNd#wxoDxn-0zOg3y=shA>hlf4#C>cc?kk$8~TiheexxBIA$ zmq)`tMqQ7@J=|uHxSRS-NZd(L6B2julBcBiY&HF7RL=h)wBr=KBMso~Bu9V;Z?rQ3 zkIhsuq+5B}uVihZt_N=;w;Aw8sNV$MdWxFBTgOYDseQtMH!L;e$p-LtNtO2`$Vt=< z3))5?1hL15bR5Mq(21R#vBa}xe0tz)9+!d7!+jJNL)uO;%3Al?Hv2Q*s$|+s-^I9^ zWO=szY&&Ur)(erj|9ZKgytv6J9D_k7L_KKnGl<4HMNE5Ci++!4G2WwE%5fe?F_+mi zK}1E1rH8GrNu-g}nsC`CFi=UfAJwO zkiT(FMLsHb!A>-ou0 z{epl{^vod2f2!#FOp%4=C7UnoMGN;y_Fe=o{D*jX|5p5=dS0PjIF}qC1f=Wpj0NxO zC12mRpZRu^A^@?X}nKVFDvCnZc)6&ndQ?Bj$S69lT z)dXhGML+_*ywL%~YF>ZvrkGyd90M>fJ2cNezisXWhbDuSqfVYTJFL9P0YUtHfAE$B zD^2wB))=V%EKr~Q!LE}g2-HOB<*g2=w>Y3K5m1-K^m2I&#KJ7SeEQHQPCU-^a=8QI zG6%$^0%G-em>JB+P%X})25vX&IHP7zN(2*pwF8TIP1~5^C)3&lj-^@beE;ivW*lei z5aDld;BT}^J(L$D>+<7aXng|NiY$h%e`v$> z%i+0QWTiZnb8>=TH$%~R~n$O#!0{W z2Wp(n>1>GAmM+d|sTFnN90BzR+J<8gOPF2YR*0-h-!wgQQO-vqn3_E&PW9k*>KW;8 z*&tC*@*5pHr_-e)cF9Y}F0af5TtJ`*0acqNssdvENVQvEm+uN&UUr3x*>~%V~!jauQH z$|LKo(AE5w6`oRgU|pu>owo^<<;u5ia5d+t&BIo6M&;m#d`&wLoX-pN{+cb$rE=D%W$<$%QiXS%`UXBYm>?^~*`IT!(d z4(dz@IPS3sIMd@cEfAa$5S&3q=8-Qw7Po+>=RP8J89TUDEimL&G|$~_yy^ve44Ixp zD$V7xM-U`adL|Udx*UKw(h|Lh9O()&kzmMp6xzd7a4-#zI+%h1fwH33t;=HDTtTxA zNZVhrG$g8n?G+ZvDWKRuCZJwu57ana!u_dfKwApdci45FA=+44&1{JOqzB(8ff>0NrL+lvD@vy-Pr){gs|J` zz-1*&*uDA-e-zHZiJl^coefiMLY#r*2$`w2ev;t6MC_8FPT+35FG~y)!fv+%mjyIo z_xtbsqhPnsfxBh$oS~-y+)w{;usg+Lw?Rxy2)n%wTmn;s-R+YE_a$Gp11;I|KDj&Op7)MYaiUZ)a!B#1L>nYP@aM z8m(b3H=7!Sc*)ejPHiFl4`&i+$<}z0*cL6fR{$^amSp>Il>%EEGcIN5E|ELhxrNBUZp9gJ1)!}0X}ZA%F`-$w)aTHP6aWKj7P#b84S(MoC2Rr z?2&*)$flC(Ntc*Y;Ga6SM`E&U;^liJNQ{1T@5Gln3dO5B(i4``v&-YD(|8rmiY|S* zw$_sh!()Q-96nEHbCwq2OqRE^SdwqjWsU91ED5)ZHz5lH&I0l=?s*6@w%8K|09N+v zCqzgl#3EK`4&Nr`xAO>!ZRafXqqi&m5G}a#X9^*kQ90?_BD1o<3J&q6fa5>j#VetF-KE;ot2hIw{kI7uud=$O=nSib^M66E#tF;b$7|==+rh**#C1+Fy$@ZKhv=3a zf^y*E`0jFd6~d&sQ!tDlgbqc17+ODgUy9aPB6{rN6{TSpq|s{*HE7-k%+P>u>R6#O zjAs#SrX#A>&9CP|RfxTz>rF!xH(qKQshG?(RyBqBiY#rUYE%4Ju_zyp)jwyjPbP2+ z3nsB}z)9HTTO+f-WedWa2>lY$DkA7}q-)LgLB6$;Z?+OQTa5n24^v-MvSI4$&&iRW zuWG?WT|-~cs*rrvco*Oa3hEVwYK&Y=j*W+cV%(%4%WXr1%D4#0H&xX7fRAKZTLc>+ zh_s~rTrCVFOZY-2oaWNI}|6t=uRMRNILI)pg}o+<++we zn?g-`Q$o_ju!s<8ObG?VpcpMe0Sy$P93NRwgH{?4(pYVU3}Qg-H6N2r-F%0 zJTZh}L)!^;rHFPwk}M&MZy%hz!lImW;>7)mtl%3ih{cLv(^h2fE?1F08ZOVl+gtFZ zgUp>8>FCA6xHUDIAb&;=F&;vXbZdtm4n+w(TT8|)VPcBb5x;T&JC;@~=JG))iFk1@ zx4eqNPi%|lX!#4~L`;856+yp3bb56N zni~jU_IHv~R;CY)#koLw4s-?u?QKc=4GLLYCm@Xh!HJNQ_?MPyI%Umr*ym{>UwL6j zx}P-7DqoRA4B0^n52a8Qa5S3*hGt+VR$3$Dzi+RYFW9xDere`v(`jY9a&`%>)9fI( z6dvakqgn$zk|8QXK;siodpRaM?M{>D_ICcTh@3omgt?hev}0QgmMATOmCXri;0ds|d+L<9fN4w;{R#m4EkjEJn~I*I|@ zMjYofEd_CkIoW%PUK1`xgW8x?`ONz@+lv+%4oBAApcx9>4CPxbmH53E^xlN(lN_P) z3+p6JUQ)%ItWVc*L=vnt^61X7ozK4ODt_#vr1FrGKT!j{PYTR%9u;_SaQKV&d}H&$ zzSZczFTVIb_d|~dePfV+trM+e=%QMej?G*TL+s{vNbci{H?OXviE&C#<s=kZv5+8%h`_jK#>o6fz9zRLm6++d5CL`~nR&rhe$1QM~y}E{d zdogo~ZJ2Qdo-nyx?bTs^Gu@+(VE+3#{NRY8u;=2pTQukPHQLlAwn^1*; zZ8)j+x^a1v{5;_N%`KxC47eI^t>tYa6XVQgCZra*lKO*770gHgI%cb-;>OQrrz~)q zsHN+-a)SA-92&`MOttL-d)exY_;(4Xx4Je=TMawlC^>nYceds&fZS{ues1R^r64(Z zyl5vu7`3=}^cB6~P9Aq%xV&u_u6Su(SbdZ(0Am)Q(U1FivsK{mh{;?ch0$i{f;=_} zN$Jq~GXEGws53uD^x)X?>ad4$N^JN#S3@uzP>7KMp{@xj@RB({s0@4NUUWJdZzJw` zrVva^&mzSQ7SC|_#&&$Rk||p-)^**WQ{uU<&&z+`&)Ey^6pz8YJoNp+<&Y4Uw^n;~ zc{Aq&a=A#U?E8cBt5bDZQDrHT1*Iy>%8GcLuFK5o3|%^_92M@|?iu!A&NfDl$h;gLoA^DUKXa3b3uG3f5 zW>S{7AJeiwFr?Ba9Hf{2n3Da`m;KS3{n3;C!Mc9hKv(t$d?1RZe+K+VF-n$ zGg1moXQUJ~Nt9fB6^f5PHr7}X&e#8+y|;m~qpI>p>+61W_r0B)qzO$DpzbA@jwYm0 zOd_Cm^%ICo$3OpBtTn9neDhfEKW{Bp%X&*@STp>WJctaV5l{nW6frtMkRTtLL4=5? zt%62HiGYFeQ{O`_buy4iiFBx9Xfab@s>Ed!K#w*$3gV zFs~W!00U^!Iz(4KWF4a0(|2GaneWIEx@@^&4t+n12WmKKF^F;NSa7AQ%uP-)hC6tL z7p_H^gE)qlGMHVSjjZ)n;ul_)=~!#!%9XzGRX13x5%6~y$j!tHp)|Gf*CnSu=?j_$=6>gIX zZaWw#wuX#5^ve#1gt33=KOy9x6a7!-YXusj!8a}$9(1&uu{uD5ju?DyH_;)&Hr+Qa z53s_Dts*$K2(5G4oqoLpaRo?JSGvJGJCv4vW2ROsy z3A+yt)#}6Z8uJ${964&y(WA#KUb6Jq{Q^om%N!I?CTvj9d1@LxKwoQt^4b`b*LDZxwYAsBp!`Tc zX&3hg1(es@pu8>x%4rrTr^TS0)*Y17YOmAde19%`8NG#!EYw?IGU_eLSK3#!#E|Xj z`xM92W#F>S-zArc2BYjmwJ~k5?fQXL?J?e@s*UPuPf2Tos zrvFyn=&=N7QLQS~{AjyWLmE$|drs{aNd^an zNIF#`=_WxE4yR4q9waGLU7k!boU~g&(&NZBo)wEI1i8^qq#91HA%e2iYMSAmmTE+N zTQ&5g7(u7nob;N0kz{aCh@{tOBz;+sl(B|;K+^L97A=N;zgS-`z|bEXg@O~t+SD|wqGO}926pHtwz#bL6Y3qNOEgy zVgu#ZQf205<5tnF)?}#IY+Pdl{pyr~az>M?heZ8+9{fB@A&~WQ~R{EK=`M4J7phi6?km> zz!*_8vky+OfqqrLOlyEEWZGA0=szgX_am^3rP&4gWxd%4N=~@Z%2mIJsXW85|TM>12(h&kB+t)~g%lMl!PT*4XNyDvW+`A^%kX=|_dd z@~N|L(zuFl5kf9hLcGmUQar(5ZUg0e8gfi_1; zM@px}Qy*&sC)z+SOHq1>Md>9mrI&Q4^pe`L7?kG(6al?grkyD$%WO~}kgQ4GF%~Gt z#GoA09h75gC&Zxq<70W#yxysz+}b^jzY}awS}9PDwm>;L2Ic7Ppd4L8V2)mV`hbAa z7gbWC!lKV^FRWP}-Ldd#B1~@g(;|m8K0!m;wc| zCSFHd7=yB~J17flp_U7u&ZS8wo7Jed4}OPw3mBozI&E2F%4#!GvCy>bsNQh)Te2j6 ze7{oB09Pm#kJr$DK6h~S0{s;NJ-o;5ZqGFIACPL=w9O*PEJk#}r5Xh|20%27MtQNP z`EjW>FWa|{C_mmt`EmWC++eg2<;TTi=l=f3PD%{);ek8OhUwVU*a3Rtu`@3oJKXx+ zC9+~(?O4q{KNLVRJ}9@gG=}vlsnVCppMv!%8CN~YiKRBI(4v+i!jvh775gxB6iKZ+ zthL$_4eK8TkeRrW{v_O}9Y2>_3qx(QyPaZXY35cA`=(h;;66||$pxj z4qg@gV&Aa>ciwlbz)Te#D{%L9#|qpP+_3_}f;(5} zGc5Rn)oyXW{2t^L{uwSw{4IiNMYL>TR6Q)Ww)i4f&QF8<;;_+S{ntxX*+XQr7KEY+ z>qkTq^nexCf3t4ALjXS|MqBtkGK9!HhLW}J_dD2(&@3EmAdiU<(~wO|H{11u5jwdW z7Iw-jllb7bhh7LW7_JTEf0J&?J}#S>m}47aX7*^zGRU3{ zvfD4nCbGT|WQNXzI-HMcDnBhCXPn4~5adI;FXg>+eKWwAx5rf*vHlLbVX)~b8pm#! zL%KacLP?bY)QA6n?(Gej860zOW5CSdm}|QN)c(wFy8={HK$k56V>)=C%a(w3y4p)@ zOMnVM^}4J@D@4vL-fzzC2j~a%F40FOB64QF$GNx}Ks5XQt~&u_;-|Qya2tS{9Gc~x z)HZ+z7#p5!DkxqAKh3se=FnCEk)~0XAa64-?y?U+`SsoCrL_-0VQ6OY?Q?Y#fP$&Z z4gf>-F3e%5J~Ip*&N~1Ei^?)Qti%5;IQm$5oNKZFx!TYU?6ySx%nX4!8~EQ3=v@o} zlQ(2$hQM5n`d9L9yB&p_;f!cR8_0#>{>lz87@BFgzvaZ4OCkUL@X#(nq+am0*Xhz2 zni&tx*?9kcFmzBy*<20wSEH;j97-{VnXSIWBK^%iht84y#1N9}{FjUJw=9g!y~q2^ zy%7JI!ExBd_vcDFd*hpBO1yyseEzlpl)oOMLWqyKtg{T7Y;@afOJ znEsi;G4}%cEjSMAXnqTh!#b4Tg5xlb<5#Ap7j=$3C#-Jq{?v{U<#RTO-g7*6Y{iPML-xugFt#JLmK!54P>T{i3fj-k9eaoRecLMce zu+;k8v=yNb=LIA5i?X^NWv|rhD1Ds@H65jILf2K4z69&$=PEwfQTjqY1?OQKqOVx6 z&@-xh$I7b3F44m^KEHEB_mTMg4GvO?%Mo}TW8+_n@%ir?>=vKzO_)C_QXl&}s?lFf zwH#!LM|u^+#m2{kskr^inN1*)$Ywi!+vO3cOf1it9U}8p<&9EVP64qhr-Jo!a=>T2 zXSG7PdeCyf0~8C6tpZ2;=AdqHWV|)Sa8zymfHhDnmpwMO#<}cE@zy3Bn9yyZT34)J;Doc!3nptootU4J(?d}h?ou+}~SMK+W4 z!CKGoEjtZmF(^2KUAiWlK|llx6jAmXls5K3)7z4U-reD>jbw{cG$!aw9fR?}gWTIL@~{s+-SSA!e45_DGh2MBHttv=@Vf$s z96a6!9QXDPM|xY%EHUY9Z+N@f%TuVr0X)%2X}wL7fPX@L=E~1}--RB;_y>4=HlXWzY+4mPsJrqHxM3Oxb&N)c zvkDEiD5vC@CY&F1e$(|QfMz|ploMl+MrY3rk3*{8%tK>vwh-z~ff#PI@e-WV#dFeR zYF3hC&PAGoQos~sXJsL zjvixlU^I~Q<{&2ASRzf{Ru#-1zxE2`4W!r9N0d23|Fh`CH2G+>5>()F(Cvx@(cN<8 znN!p9YnOVCd+@++xp_+d)p<>x;Z6RrX_897 z+0<^I6}wbAq+M&0Bedje#wJY@0tnU`DWC6BIiudR(ykroK{d2{?d6rSVzXFOm!n3Xy~~bb`gh`vjbHUb}vgWN=W3B$M0iP@jNvh*q`_?-Oti zQR2G76L66JOxuGqH~~j%Y$aVD6X{~P9*gb4bjCJ47gjE=14#I4a+&3ye`7MWz);T| z(buQt(W6>Ph1IqR)#8o9hbW(0|7YtMB&9ZP?6XvgQmSUx=yRfZ^Z|w0Os?1ZdZslq z3uTe*COs&t&Z1ZPKZ8dtQMRQcm@$@aHdyMya*8%HwPeyO-u>zyWVGvS$&45!oqv7= zEK#~O^2VhJVoz<{D@NvJaw4+cmS$Up9gW=)o0S&!3%voZQ2QeNo}g!z4&li{zt!+a zYFA#?+BE|+6{gm+wVO`p*Dsa~5(=?ovfs_pDLfsp)MX?c7?uux3P9ndAI@Wi}71grEs@G92 zHEi(b^$Wg%u5iR5*hIiDJkyb4i5TgE*3msj z){vqjYe*fY)oPB@=A$T9^fU9&99ctB>v0{eq5tY@NIj=dJhF!5s5lxGGzO!xgeV$O zh7qD@cp#IqDJ5uXNx$aUku@Yneio(u&T~x~8QLX>qH)Z2$)RZWSkEkn;*m8Z9NuV6 zx{j;QE^=fI=>i6P+EJXiv74eY1kr#ZiA`4GB@dZ4;s+Ye=U$3{ppsIU>(tYnlLnE_3T6Ye=>E*xsL9Bs)gh=DJ7Lkb(>9N7j&ztRYdy zxI7k9cFKGx>|_HVjs4`gruAwNj;;LDFcJf3z94G+x4KjFcv5!P*4Fma7}F^btSLb7F87TB z!Ui|G@#<;F*{`wpG+-h(x{FVc0Y!R_`VqSL_Qo$2!eD65N;|Yi(RREg|Bs&MUFu%a zC-O0rGRViXX3&oOU>mWIgJb^|cqaD!HtYwJjdO_i$zUV0UNC`$LVowwfc@@`%?{EI z7V>Wk+=}7*@wc~pMU^N3CSYgPTBRtsu&J{{NwTY;i9lQkv*v&v86_Yr0;gX4yB{;B zM>&G1`_q2>o_`tn#%Tqxws15($7pq`rjW>!5?pC4>oIhi@^O#Sg zf6`e8{Lo+Fjjr{pNe`mO(4Dp}c<2I{dO&3vtVza_Njm8o zYkiJF>_0(BaTK2FY!5<62Bzl#d(jhxudeW`YrTynJlRyjcmwb#@Fqe+9wNKf1;TV5 zpG5AN^6Zienx(LUL@G|x^CwV3`OoS+3miY$!)F9Z=mdu!t6)QNTx%q^7V3l)7|b@| z0hh>O1Tg^wJHQnVP`?l}6Vn71MDxBR~?J0KxhN#mtHzU zEkfS$BSRj*afZ-MR%+gVdFs-4jpY;jRuH7^LXgV!i+U9kz_T$vh)s8 z^62r0Apqv9;^N19v};qL*SO}>z!nJL3NJAWf^+^$_*Zc=#qw%B92*NRbn;KuR8T!Zd()UvJ)>cG_P?gGjR? z32sz7EjM&lIE}Sv%moY}|LD{T$5HnU-iOKkDDTIT`;hnJ$^97b*CqGkyvO(A2G{Yy z&iH`?ykIDVff^vt+fz!g4c*<@M2iNP7EBDTJH>tgO45sM#yV48YN@#+w`RAbaG6xC zwWd&(W5(wgU?`6Y?wJdw**x@!eB?IncppdXNBqt{6E*n#RgkFB{{=J1y#NW^d_d*5 zJ59Fzm}YP_i)h$Wg5S?b1?2o_rvy@lNrf*+g-rO4CY3$M|BlqGw>8y`RJ-|>Js~|@ zNcCwU)fKrsPa(iX`2$LUc2)ZfZmv(&Z!5vxfk*@B4s4MchdXsL1>#iW_g@sj8Pzbl zp#}$T#q!v@%a&>(`P&}(vn z7*xV238TY}haRo+i`Jld3`>{|Qj8zq362wtloj4icdh5tUYmWF z6ONwVJw1LGd2#fog->C3kxzpx9tpG4a?{KT`;1Rv_6xI?)F_TH+sP>?*Cz4{O10PL z7X-D}0H&5hkl?OqRnkG3jeeVkSs=2!!Pol!>ssf)WvyR}c_kc?CWZ zmRH~rvb+Mf29#wB*4J^^yKoLUC2S4QLLb1~>HH?xLMam5fB2s74bh6mv-P;3>eA+5 zGI{0mwz+Fihy6^^fw^)#DRY``2<-&BAA09ZPHtrw4Z?tL{HIK}Aa=~?!Tjy62cg&& zgGi4#Q+U;f--$*heM}^NxEAqGPV`R}?J-vlQ7E%?0K!>1q?KZbvSNs;j7Y^0V}>7q z900Y~g-6B3#JP!EI#OW0t#bAwt*9rucc062pOM=v)qplfrYWwV#KHw0wBe#ue+}QE zqH+x`(C_zH{l>@9FN#)v7t{ONIsh4MOjn^WsjX$fd(#DN@2+8$D@>KztF=0_%mTyT zo#X>fh!FXJ2|2kMDAGeTRZs>hatlfXA@7ZVAmkPJHFP|$z#|BG1#az>yn^-hR}lkO z8VmrfmNeiy!oeao!y>Uc+A5_7yY9fCMhp0#Xi1K{SvlB!&>)Ia=!O^ zTAn~A{Tj2NgA$HODW|f9vs6LJ!da>yuyB?t@GYFB3OoyEsRFkKtZ8Ig1?%f41DUoC z!mP#U@q8V$l%nl1qk}*Rqm)*74s8Q`Cs9fkYG*|$Va#R4|6A&1Vlc0uL=5H?1jJxo zflmzP6?lX!ufVMVhuMPlb(|F*E2XjCmC~}gqmn9!dY`V$fm)T-d zAnV|Xu>#psE@FdH5gP%B4h_e$o7kn?d2nzqY~)Ol4pG#?i;AG(biy8KC8Y2vr8=DV6HcW-N?Y(W`oY! zD~32rB9^MH0ZjYg2xQdifE*LS1$&uK;eO*+HwBy>Qr*4JOwHeb2cAPHR2i_Z+rI?+e0myD}|4M*3d3koNYC$jQKP379Mm_D&D6^2V>?Hlz8|@UO~V#NO=W552nZ~@CZp>feXILDOg{Z zTqHNx$jh@ZXpj`Se$X%uGczqP)xQJfxl6lgqff>q(4(9HK(C@4@etzBRFA~vF8Y?n zi_}6Ch0CZ4s}`oFE(0&*5j_E_CT6iNW~-*A_D+S0(F>L^o%SWnya`@~_|GdS6aRSy zCE`D?ARzwp3Vb3gufU_-kyqf>kOMzku)e++vWq}Z^zIosJ!O!*DDHYc6tgwD$?yr- z2V;5y7mVD~)!jN=w4WYpjFg^Y#|krPx-;a)FjM>pe5IKwegwXfM=`@_mxtj#Vi!nU zsbs-;?kX?J$6ABAZs3#?ykd>hR6*Gqr>O$UcQZ~?1p)a)kL*-|Pd>>j@CZp>fm>Ug zSFpZ*j99=KFqDuO&Hg4{2H+{=fYlLEk=#nt*c zP87hTK%)dFWyUB`8E0pSOA2USE`q#N1bI*dxnBgimk&8n0@(9VanTq1&eHyG%S?Nr*6E} zl5Auq#LCz3h7;Xp7uW(S(Q>FITF;VJqVB3%-7(pS6Wwkas*T7g6 z?>vUr0mild*%EELbZX3T);RwIbwzD9W$B&hQ5_#V)!_m=06K4tbBu!IY}HT9DA(fw zI{yY-V4_3OM;}a}qZZd5EUq<-IsbzZys#+E_~5T(@ljc&=&|a&s)TSOk|iMo!uDfA za1q}lPJ|Fa8zDwCAsRx6=;KMph;}+k&~pb05&Z@oF=2|v7~?HIHK1ce9BX33Vnq)R zfGQR2LkxN#>`pgyU+sZMNN7DNQ2=XtOYp+KBp*(e13?tAebNhtk`O%FFO*B{Wl|24 z(u)-3u&Ll}LOI0ilXCAw&x9M;4I-3IN3f-e@0utI{9D%^G8D)Lf>uSZeOEXookzKm zS1?SukylWs+{i1aQEucF3{h_66%0~t4F`&7SS_MqrHF>$ zs~j3`a$_QHfEXneZ=Mw@eh>{)C<_@uH%&%FuX@qed@|mgkn!3S8E-w9WE?6Y<6sdP z2a3p8Eh1y3h>YbTGK#xAZzy80=aBK{gpAi}GJa}S$at$wM$k=@5z@D0*M&TE0BocyaK;yG(rOBka0R8<91EPTV{of zU$e;wx@j^ZUxYTz8frzYsw_0ew$Mf`!ypvH0EUqm220xvgQeOq7*&P=_9Pjzk%j@I zq#*fe^gzYa>j<-q8U<#VgOP*iXE-kDB~^Y=tk^JC5??~_M03!aX#d0V(bhoP#h|HR zMUykq3<@l-plpr()Egyh?57F>YwV{Ad~58d3OsA87g6C(3johjO{RvSVt91<7x@jLP!IwBt>rHLx|gUXc1xq z#jxl3ggBbVIUh}X^@}4U8s;6-F5rWVF@U9?mu_4*Nv}7Xh_glxv3moebI6RoOcpHbXryyB3?D-zspY#<& zn_qy5wbB2bUjy7UnAWxYN$Ekx!zB881&*DPl*D=@vPkZkf~4BPuc23-?3@biy$u~51G;Z`vZra$5pn-?}QO#<)#1!IJVP9$1O;4)%g^3*A2`(6HfYfaTr<|Ab}i85#B*7edlSbjTFYKmAQm zebPbN0Z54FT;@-~^iD=pv;iY*zlqF>7-WDAc`QUo^!(# zHL#7VBQ^FLMHnh-Y>27xRo|;(H&?>#-bC~On7?fantQtya)TE3^b@ZX#1~`7hFXag zv?E)HAR4+l3Rx$>92c1ySoN)O)d0y8hMv>ek;frcNqX>CQ!Q+dphqW&R!BS8%@%+BL{bQfLhbP`QFoz31K805w+Vg? z;ukaveo?NWp=G#Wg(_6E8H#s?52{~K7z6x8fbLcUfgk=RcbT(Wru|CXekE?d!q31z zLm9Omm)crq44)aNZvjoxUk7a@zn~k`cU-Pdv=6U{+duo~o zMPx7U7KzAS-pvz{ev`H!q#_xlqf{gfZK?RF9?-mBSRoZ^7Nhy`13|OAJVP}1@@^iQ z`$ZK*DnQ(TDcJMAABZV@g4p(ujj;-`xstLQ!nlAl#nb9E{^he;eZyA>>B0st5+y$7 zUCepi3jZD4MLp(ia3ROI9~=Mdhb|wPik`Bzu;CGSU0P%9i&RTz)oD|eITSFjx&V8S zoo1C!R7#cr@&cSvj<6#ady1P?A6*We=zKbxML0(9;Li*vNv(_HT6tB_jAUggLmDD0 zOBL1}{F4>78sL%6$|6}>RQeZ*+evG25zyJ^`Ron*6%3sy77Tz5Vnh&I8;m~0Q*4VN z9xe2F6uAv(Hi_|(M2^Vk6PCn~Z_?xhjg2|s3_am_rCbBTrhXCSMWbV62B5Z>2h>$C z5AbO!5m95*36$r89V!n|VZJsGU^b-8gHqN!__8(+u*1A}^FUroUT^_5E%dZK0rP;4 zE!qGSF;W3Dso35?QCZ9buZtu~ECMBo62jda_$3T4&tzb-hL=K6o6(F<0&8iLxu>zW z)gF66+t|aPJ#gd#E1J*n{cCu?PDYYoZ*29D86QS~(mj*p|z& zA(;Z~f#?q%sLnd3ZR|dts%tCj$BzsExLqJ1JK=Is;og9t_6N{=q z{9@#BAA@FBEO~8ea$4fIa}jxqvKHG4Qd2iHp*8P;+Jc9jkwV<|V&KfKE%uDqOaMK_!^ zt~@dRlX3Mv_RS(MJlyn1!Fc57vg#Gnvy3dj1kXinOu8Ds)DyfE<_cze^bo4Ip^A1UFS)oCY=a*y8b-Rx`Z-IWFNTK)%O#yxs4~E` zE0dS9GU6;IuYKpmEhh8y&soAr9=AyGTTUYb*RSM#X=w7!ao+F0>97>R_%#W&^XW8RKm<25D{9rNy#pJGdFVPlvydsxr#&cWN$*FCZUD>>`& z6UocofXgoR1Z0U|Xr7MCZa%qvk`wR!1DCJ$PQf$0GmgvqlcG%?ipEsYGJN1&sJ`pf zT(I>bxbNSLp?mq}uWX<%&O5UeEE)3}O<)71oXMRHTW5ztDFjE zm>$F|9r#2qf2;XnncMz+KICx497lXw$Y4ppZTp)-e~&?Y=nU;EyCpMy+LfSQv88TZ z+Cu9{dLwgBSBy84w#njP%rBXG%)ekbaIks@AybY#BxUA8WH}1{TOFaAQR$7iaF^ga z#aM^WGb+g(wuJaG?btw7S?R?Li45RG0KmR4hgRWJP8u>803 zzP#hBF9RKzpP^hBn1a6HI)X`xEvQ-C-cO9 z8J8C_F1ZsazW|Yv8xrU@I@Q>XU33Bj!V=m25xACc8ExWQtDJdffG9E#V~apcG88yD z13GMMLCjH$C_GFEGiA7vg=kmyYEg;+FbF{SY1B_pQMybx@VS-h!XXu-{S()t$NC#B zx{!Th9^D1*Wgg23haMGKM^UCFzBj=nOLAJ0gnI#HwGfP_wsq;n1h|7_P2G`n$7GjX zW^{?`dv81=dAj6Qb?U^hyuyhvE5VKCi|Ytg0MA}DRs0w4m1Oma@2MBILqP$eHW3n*SXEkw zTt(mM`A0QQzC&+9fnZQwQyaQ9R2u&XIu^4+mVHs59t3$YAap*U3lwy?WTCUNZ>e>& zzM%`T47Qf5%qmqiwiE&iuo^8{AB@T_h2Cn6Fr<2->60vEM@hGjtYrgQDjuU6fl)?ErP|to^*9$5r`x*EG4cJ>5Tg!CA^ib zH$K(4m&!$uhw&V?FbaW3{2b-T!gXo;V5I~Vfl6*;1xj!<{A((q@lYutG<>B|LZkHW z$4Y3k&j#B)IaK3NK-b6>Ax>-%Jx|Mh3TY~!WmG_agB!5Zd3?6Ud#k#fi`QThQ4cMn z^2GY07p{ZH#-5nE;-mbj=mUl2McVesR` zgkXUi@NcBLh};#0z`SI>?4!wk1zGg#y>m*0NjfXvCW^6EYT~N60x8^?K_Rrg0dfj$#FYvkcQ3 zn=C9#z7oM64rs|Eq=A-vpe%X*P?o$8U8XGgGA((vOkyl~#9PpkXKiK4v$nG2F<~&4 zeA!s?m3B)$5N%0Io=qrAo=qrA9^Dm7US7+!l%-;6qiuJK+70+%Wy{|$sAxkZm@vz20mNkfwOsm zL2c#$gj>x2F$zB%8uF7w42QDRLhS)0Q5w@dKxEZaGZ?yTag{^UhOj6xjHT1G7!I&! z3`1Y6Kg_GA8aHV%Ob-(KLD(WK}|1$~w+Gs8@`TM*EcYwezQ<-8h5-_!LEn zEBcd`fMVOsOrR59#j_OX5@Lkj#{yk`W}zdEmFfhhw94%dI<$!w&ILU((16o`2cm9h zi{+HD{9)`c(Jw9^a^VrP86qPDEgb7?@BpURz80G^>qyx{O#%)`%de15f)YnOtve{cL+3~l=n5PueL&Z%BSlRtY)1+v z7RHex6N@ZzeCjUCks@sXRh=CvdV+!G`f;QPItm;qUD0tU94Q|T;5^i;XgKG}TL!-^ z2NtIXm{}@Aj3PtgUnKs>9Cqcw(B&8x(?`r2{DNbR81j`yk+8oKd`di>t}Mm?N~!8) z@>Xg({7FrzwZ1lXpvtc0tkBZ>2uO>y{BSH-fCWi(n8bhBNnrk{*pETJiyXhcnwmdyZO5&t9C zPN=6*OxOfQ#wMaRngj<97|TY=I>HFsk(P}%1Vct~l`aI4sw5q5#P`QJOaSq~h|R{g zkd}zkV@%HYMHtlhBE9p9IZrO5JX(CoNtRx1n7{ZDz=sZU`=M5Fj7Wq^u*HWI3>fVkaEa$OQ^C%3tJ&J5_(kk+gqX z2r1++5A^YKG#<_Ib1cU=U^ypcxCU6~1t$%xacCgQJ_lGCReTZazCJe+RCxhf@jWy- z?@a)e6&uO!sQ|*$G|AS`1H}8YgK7f+Ym%&4^3;7hrmDC)_I27He?Z z+}dTfW^*erVGA&|a$pNEnXB3IYY*aM6ZvIkW}W4iUMA>MegVWn`PBu)l>DN=@`X|P zOV7|mH;@Zs9<3OLswNB-GbdTIxO9!r1W}3~lv!iyk zQPwBh0>(nN?E+(pZK-mp8^E(#-BM-_LjIAJT3FknaIM6`75>eHnJ}!SoU!cSGAbDt z4M8NrV3(qxH4s*?9}4moO@f!-9v!bnfD?sDLjm@3@k87sFaXYkNDbm~fSNK6xGf8V zLiT2He-$@piLBK%xkXC`jk@n${2pOsS;(;E?@a8+7nhOA53nB7yqw3#n*S;`|JjU8 z;V4|&0!wSwlI`CX>&f14s`w5K zrxgqv9q`b~g?oWku8A>#KZSJi@F~hi+UK#A8^;)ED>sQTXoJ@dF~|WH-~(Q3Mw}N# zfFAi2#Vsz_iem(Fl@5Kz)=*Hx0miL9kJuBP^t9(=FE$&%_%C!16;E(v(l8T#D2hah zXFe(*MY&6aC5%DYnJ4tjr%#?}2i|6iuE6)g9GngzdPcDcr$dT8AZ&VLkDvPLm|D!l zLOCgqt~HE%B^+dcph)JnxYm+Y`XFAq*D*>ct~On7LY95xMTD2C7$vOTb9mw6W4xhh z+6H6ZDb0A1Sxw!OwfR#}n*AU3Ehho?>N7M6ofTkBXc8%;Lz84R{*`K_o;|?V@mXXX zWMGnz8w;DOT|}FQSh#{w4QC0fiytBOj&P+;t!rW3UU^4O5&3{sB#cRMK8RmPVvy(y zDhuFh7EF(inj^M>8?X8h6S@DROJ&MKwMryo9$|I#f5uSL8A4MnnCdJAe*Yqpc|UQR za?vDo-VcXW@!uKI`&VkFBP^!~z7J_5(iDFR;U)>m<&Ca1-;d;ePzrq#y&ZU)>cxN) zDLqnu-T7Te|K}Hx^w^qFNcyb^=q~;{Bhp{Dq3 zO8u*pkFn2z-wwM?{bIO@lOCy0uTnR$|71zFeY?gp!+i^`a*spBBlzUmXRsqBsy3c@ zHy26V$zUzkKE?9J3a@P7KzdHEk;K?gu}9NTLT#~*D%K-%VfkY(Sa3;o*n>{qvVy@#x=hN0vvuO*Qss^(t&y<{i6v$#=4Ai!KU+-L)JT^iC;45a@gkX9nDgdq_I-sKuMm+)aGA|*O6BfP-6ku?`& z_KWU=OOV)#@w9~ZrNf@IT6b21)sl@qkqOHID#s(*vA8r0$xHdjU?sA6qyoe0`Fc%gT zgFpJsZ-3w`4}SRZ*C__yclpL$)BpbIdlztX{|vHo7|eAJ|NPUp|NMt{edEVx zs_u5>@LLiN|K2x$_N)Kc`^BH1c!a?-4E|z@@Xx#_7U6f_`M#h0^xL2MDRRnF>Avq9 zcRYXl7w&yGwR547qBVe);g%BM6UcB&4;&5*{((n#{o(eTKKf;(@@03sGWe|tgHKQ2 z@U`FmVB^oW9TDMKBjw*;L?h+C#0tM|(|0ca`G0|XE$E)#AmKMOr-b&yTALj?|=OHN3YTS?aJl1 zCtQBVAGY7}QzW==9uebnN{k?5UT<>TsI>U4Nk_N&)<2hYlV_y6ST+qZvq)5b)iZ~Bj&&rg5xq4ygh54)TvP-FIg zD10l}$x7b}T`csiH0W@kDT41O{wU>{NO@RnRKQ@Hv{1pW!{dX7S_q02rxG1qD^Uv` zjAcN?#-~7Ugqzj!Aol^%i>MDMmybkLy#ep7 zJHLf5dgfEZ>Qm3qeW5-zs6O>e^@N}LjiL>;^HbOU>lbeR*sZrct+eyx7oL0eJ=g8H z{M(lcq43=|7&p*F+6@!}U!6Tc<=OWHRg@BCV< zQh`nkcEdlC@#ca5L~fh;|42uSp-zN6M1P3XcuIYv+J_aXA~@i_5tPic)WQjYn8reIqO}!&Ye1CnXsZ0)MzyQC6->DNpa*llgM~l<;f-~6mh8-0dVc@BzQ(S@z3#$-8w7$v#IFh z2|9xVu1O*Ei+)H`FoyUWT`-m^KwyrhP!yl@6N)AQTKwvf?UZBgHD{ zEBHVSrlG6Ar4x+mHbDVdnyc~}+e1C99<TsZZb6MrrpD%?8e2?_ ztwl9%HZ^W5s&S{Ou_Ie!XfF?baLvIF(^y{$w9pMACWQu@w6J1AajF94u~!~6&lA1e z?>W+P4O1fM0=xl@Ee8`+A*y7<44;m+s$&jQ{v$p*Xb!T$-6G4c0zW%A;qP25as-nP zKX(5^pZfemU%Bnlwaz-+U-qqczyH?X+`j8UXD!YH3?~1y>GMC`brA;yLT@r6@S*w}-k>7+Lh!)O;_FyX*oNYc7^=ecALOC|pR(zs0H ztIY-8T1SS-ee5Q5LI7!_zA$153dAU_@J4t}CnC`pkd0a}EoxzP{*?k57oXaBA;h5N zG7coY4ERZJ5}_hXIN~8F<%lL0;!GS!12z7IpgF@lpqZq|ht(H+xUpS6J9KC^5+ddS z%d!l&Q` zup;9yFjYJh1_49fW-TMrLx&^_SzFMk&GP4EBV<+3Xc8o=Se;R5Sz^9;oKBbu7`+FW zdS&qZz+Z_8err$MtwVu3Gxr`l6u4*RCI$+4yAT71f~UWCNO<~`VliG2=$IAXbB(77 zQvpx+08_6#EwQS$%$8tw;py?7cv?rVcIIgnz1pX|CISjrx)1?}f~60QX)^5<^Yk>V zjpDy}uU%fxxnz+7T>*C&Lq@1m(DlmY_jnA`wAmb+lZ|PzgNfd<+N|9)kv8Cq=*;QU z9_QfAK3QGBD&Y05=y>Vy{7zaB1?Kq9(wJBLH^mjoMwu?nF(XBwE8zKJ$Ov@`x?Xwy z>!o&{pDx8be_yF5o|iVd^8C)yOn6?vD&YC9=r|NSzyFY!E;~AGR@wnCM)BViSIkYj zT!1TJ`C`BbbPBj$S^lm}PT<6vxs#bMx=VR!qASPaVDTA9d4Z~c1jgG$EltjsaHMxZNT`C`Zjbqcy(S^m3~cDrV0CAMoGsPx41 z(neP)zpFA6DKB6Z@O)QvymWZ}xpFbjKZoR8#eY*=p?H3Od5-bCKv%%?#gGx|6m-4v z{BO(cJiosj^ZYZ&3fF^WBW-l$`RB?r;due8faklS{+p77O3rVZYfGpCT>;M*Lq@1m(DlmmACgQ0HqUQLmQXkMwuCBebd~ehs@wv7 z^1Ogm!1GT}i z=*rx37Gu9Ycmh6fFJSk{2XdWEo`Y>Ubx2@~RD6zWlwf|6<>t5nqJkpeCQ$ zclA#`_4!Z!3Y)$iM4j@?2$z9@5)gOQeg>an{}}?7bWkY#i%YQ$9gkGdDel80BiFL1 zfqcQz0$8Kb*zq7E2cdW6sEtOUUFZXK55%fNcBn20M7i=cds? zyq@YHPx!=>k?6Cz#XQj}Nf#ZuL*MBzw!iu9?bm&2<9mOPO%XD-zyID}Z~EMwTfV>M zFdW*q{P@Km+Se!Jw|!{;I4RnnGqks3&&F&GZNbD#b!cx}=pzB-C2=xoDyye`pkffXnx2e9Ce2PTKDad)V#9}o-a~=4#mR@*YjI}X2esUA2rmrr1=w4@(h*`K3O<^31pGTra~O2M z#t7_Pn1@QS!jXs2RE@AsbtAU`bv`483HUHJFQ98AOIX!Oc?E62Xo5B&5@|*{;jk?3 zFaX}znQ%Tg9>@*US|h#z1?TA-O&+4RMw<}`sx}w!5&$ybiOKHvLcJlw?4nM0? z%@O>Z7H!#Vz*P4`yb>;W(~{t=sOQOJ#Y zZMwY?-SvydQ8GVMf)H08(kLCoztUq?ddfBp%HhH_9*#>6N7i`f<0AFec<+#(fNYKT zHatUuo^rGgsfadTrborP<~+?m!1L)CkYs3Zi;OP3Ej!>~+PsbW62_lmEIn-FAuEiO z8nP7`vdAb4b~i&7?_;2H*s@#5;lqw%^t=sxc^(dT<|Z6;E?f9wn#tl!BXRjThWBz6V)fo-Y?i5 zkaau(1Ts-&u|#FIvzKS2n-j*sGyIt;-WvY%QIr|}N2Q1VqP*b`5NfS?whWk; zmH|i)iaOPB9yd-I8NeQei}Xlmr^2J+8?b|s4rP#l>ARH#7~~F#%(3ebhpBO1^(J~9 z;~{o(orxnZWQcNvgMINY&TQTL6&YaUO5u){aK}4Z-N}yKDqYAfBSDiLn0XsHtrO)d z7Ud}jk&vD$O(yV$nx!-~8>p0_=KM4@7tWNLir0#Wx-h0Ah-&Ca-ioDsny4u)2SOT2 z0ELu-f$~8#Qc1C}(o1|Qib*3ysV8DX?Yaei`_oV&l6-Qf>AUQ`>!zV(0Ak+~G>Z5) z3TO(!jG;hXh*3kK@PMTRAO+Z6z6uSV6+Fot?1O`@Z)fQ9v`4{{lxj-GW2WLZK14l1 zDg2~5+Z4OCdyNM61KCs__Mp&P31kl7<|HYPV1Wyz-Kwi|{hceyWm#tsW-93H>?3PV;LGo&Z zs!4bEB{$jbZpwb%!tNuP?p~X%U(nr6ow{2x-L0^@sG4;5+W1CsH!PKpTo0b)!A@ET zCma&(#NcS3m&oqC40BF<#yk)ZQu-g3pJvVy`?J$C{fWEq!Qw7Fm$kEi5^g+%%VUE* zKK8pEy5O5G1nk0duIWPLp}=i?ftwFoGJrgcYGdTd5ZML9v>|~+q*tc#I4~=cLZm~q zh?b02W!O)E^Bz@~n9ta>iG+=r_Hv2LER7v_(lrqIga}m=B0rYg3?NH)D7&|~Z3{*< z`psh~mGB#SPt6T-gd*YA4kQRyCilg=vdT-(lRl-H3yf$_5i$8U3@9gql$?a@gI9|$ z@PG!05an>iM_?*LxZ`{hKC_UNBSuMfb_*xy{6LKy)2tl9YrUK!Q$aCwJK-6h+A6SR zstC3;-%_ahSat0vR81#(hb>3uTCjbuGi*5mxBxaw0O!C)2`sR6lED4LmLs4o*dFK% zTaL6YfX$NDIj~V&3v8Xlb^oyCNOKFeU7cae5$y%AS)x4$Hp+H^ttZ+3ei5vg+;Vuy zbT$@4IkFucf|1fTNRZVfmhD-KTV%WRr%1M6SKNgh*PT(CR^3cvgl|rF^QEil?sqcX%@?S7-R&e$qyFUSHO0d0P|4E|7kA;%$kQ*{@-!Kp zGDPwPrm~fP)T6-cVk<)sWr>`!l`}FDNj7FdMBW=v0K!~_vog={6=pV5fpOq{tRAvHqQ{UprpH6K z%u8I|n@UNBM#>c|szbrj{Feh)5Nb;y0_P6=GDawMzJ~Da7hZSC`C= z7Drh3qhiE5y@Ui{or3NuEDa#RrkO)6#*BgFvT7e?e* zENdC13aMxt0JH(ofXe9^D36DiadX|sKHW?^%RcPhdZ_B_t>7-V?EA&zz(9MJAIdv>!jY$ z)xPf{iE11Kum@>W;~)UA#(O>u_M+({90aEG7=YpOE@*u2qbTIh(Fn_qYUcp*0FQDZ zi;r=vZ`1^*(mksJ{XO!n7a>{q2rkb)_b>zTk#juyWE|1&!6advzeK&Oh<@>1sEB?E z4A}C!A8%mBM-Mqgaon4yvcn@7ehb3B8PSj9e|ZR>7wuC|PFHo-;qq%fQPKO`hY{F6 zj%RphB`$yXXk4@_K+!T)6yiJY0(hGit;NZ8fsW`eN8XvOG7b`LU|4ymSq1aG8Pa0Q z=C1%L{CH*H`yffY1Ua5i1hy&;N>{e3 z4*8Tr(eb1vCmSP4e6!>u26dZ0V!SjNZbUSR|0?$`_kRcOQBV;<+pMCRq>_j42!TtO z`U0cX)h_a*Ajvf1zVPpAye0c=fJ`4@u{`*39rp#(?_J?56_ltGh;h$TL3KtHxQQ94 zhauUL4C3YJlBwnZD&rXH3tD`GpGPr11fhnECYdoBO7=jr=X)XhU(n>x`?pw_Hy=e7R zH?b$%&XL56x3V;;cqw^T#y`89jvSQevm2mXujM(!%zK5L|;&c^V*JH|S5# zj-kJtP@UY78^+CA^ta1pGD8V}tz^eMOw)`~nZL-irDmov!WukXeiHjKNNr&cIocp* z4-gL2(CiVs%KeF9k1AgXngc$|2gW=kNHZ2Ufd#T#yd+5c-C*tMy6d(kN&~ z2M(68tHKgE8k|TO;MnIg930+azHzJq4FWIxMLi=M5nDB^d`BUIK=F0_c3O4v8h!=M zVems;4jLZ}>-=PE9@=kW^`+U+p?V0|2){YX#IRkP^u>-b z>|Kg3-wFv5y%q!<0n=RMlQDZX%h=XyC-1*>mfF@Cz20^-Qh&c{BjsnSZU*VV; zBo#Pj_y!QbooPTiHq`E8S{JEZ5#Ap(V@AqYUi2654RFj1=rIF@pEqU@A{h?AIvHv_ zc0Gpx+6!6(N}MgXtH(H-Le30+kgK-M_t6S|&fqwZgd^OO!x~10Qs!_Dap98PW_pCboS9F(OaP z!kq(QS-2C-c3~5)fF_8<2z{R;3PXr9>cM7>OiElLg1$z!sDYRb2IdZsNkM1uo_7}i z0h87>lj^NV_R$O?L(6ExV$-q+Jt#|RSA-?gjetzOR6tmIrI}X>YovM!$mTC#D=e+> zYHR&bJX=Py7upL_5hJ#Q{xohA`e7OuV50<5)sT~kYgm;81j>TghIlv)0~1$#c{{HB z=AAACG7*jNahj%J7Ss%J9)Wrt@&-}hQ_(xH2ZPKpoV13BOnC(5!}<;Klp}rWk8Ay6{c$Z=ruc7<`h)5XTMb$R5G6{< z4`8VBmuzziT7#39%E2QrPzUh%;#M8fu5?aoSnL9^5m=;bgp0%B+gYP@4lDilC9MG- zG!U|ldZ>P*)791h9zbuQy;do15gVAKotAzc`sucOX^XF7JCpqGS=ot(Yg2Z=)!Ys% zffEDBSae6pDu`QoBq&jjC}>$ra1%>3c_h}6Jfa?~QtDZ%QcQ6M4?@i;JqeYk^`tz- zW;p1{LVb8dNFEWA@l4~xfjeZPUei;~DyN(xU=lN_hJh(Vq%2zs!}8m4x{CkzI5Wk! zPl|%8O7`|wqd&dy0ya^LIRuM}hebiWAv~1Fjo?z#b1E)zz?6ySSlpw5dkhUV=MuA| zMuDR4U5u@!i_uNXUY`;LD@*L>01y2OTiBR|JvXvH3m=7NEPfRM2;5SI3#AOrZZU{C zn_ms%ra=LW-#BmUgLl$mOx9QS;HJ$gbYT?+n8wErEvMIL0l7pQsvVbn)s9vJ zI`k~fInDiRHM^(b3KI&SSLT}B)o5bFQd09))3TbrV!VeeRtLMm>Y`UgoPDxLg!P*} zN+{7W1FIdTH|JC?FEwp1^Lyf^;MZfu_*}`Y7{;J`$X_N#Gkb<3ccOLwZ?mNN0#9Ju z0vz;KZCxrwW9Q3VS?uc|y7^}heB_;oY$kZJ9dVURjEsf8mAKE7pTCi7idA6hUraM2lX^Q<;ay_dpD{2gdhw*C{gU67419J;;@Sn|xAQ@ni)5+kx zlJDc6k*UVNX+DKEZ;(%MtpP*0VDmGLfABc@6yJg~4I|EWPfy2NIiB~DDE^dJ6C|Zj z;eKuiHBp{?1n%H;mBNA4r}GHELcoX;GDG7%UxW}atd7ocdk9Fx@kAd52U7dc=IoE+ zPFy@P(p)s{Da3~$Cvk|TuO{N9CGPk%VQsw5aPHjb_4$`ooYOp$ca%cCq|TWjxtE7^w)|=#1yDvIZ1E_3J8t- z3-KK|qDdn-qDiAMbyfr|5>jETJjJqR^Qn1vLyUp$ZyLBqQz|P0OvZg3|&^j5TG)wF0H3DVQWQAA$sGJ#sIkCPzPMtNDLHO^)5^`W!aY z#g2U=nNST_YeQ58Z@^n*-atd1F$ifZVhIzk(dTd5gw6##MGs346+n!948HjM=@Dka zDk!Ehj6+Hq7Bk)G^r;7alVVu>un@geeG)ME_yAQw%}yu;2VT{^?>i z$~HPIYvh=XZF1(xz#TM3WHP%@ya}%8z@1e(6x+BC zh9a2`yR2iT!;6Ydzy)Gd#7yH;^r}1Xm=AfUZh$4uDq5Onz)C|gD}nJ4DWxkyGa<#4 zzLDvQA7Kl&@D_cmtrD$0HAN}Y=+nGalI{A+R5H93cavXdKiHpysq`{l?qnurs(ae3 zyd3?dj*#r1sUQe@Vyd4d5-&3s>B3ZD*$9}FB734xks-ou9kmuLccZoNNb5HHQM+zK zt#;jpNA0=|k1$juJCM~pI3>rL1a8dWYTS_4ZMDQsfx>~g0D;-fnyi9*V{4L!gwvWd zQiClZVl0u_u+%amCedwaJ0+{zIIxU>pq)aY0Y#VSJ1tPOZWHN2-Db@?``2yBZ2HL# z3DWNRkI&xogDp4w`!3`G8pKk=w)?LC_`iMkmPa-tVH!F~A&+!?AQQo#dGbR<%0VT} zPVz%^2m*TnWRT}guv@7-h?w?_qQ>33zn;m1h{p>gJmPKmbzo@_A@AOdM)v$cf-u(O zXJIzPKQd552TfGd*$}_<`=qFZqA|1sDXcI9W@aw!84G{q(Kbb)$W2OmX{=pq2NPNakrK2LKPyThd<+Ni2e$l_K+P?a|~o( z#AHxEPO>3}-a*QS_`%^o1>%&=`s6MsxP?E00&C26lvapFi|Dq ztZ7LmG4&3_tSSLKcn8aZd}os!fsP-0JmY6UEj)yT*InTqx}rbNJA7V$l6Ux|{tWN% z8PzmleGHC_O*k)^zqjJ|R{V+(Ny!$>`RM8a8Zl?2s|RSOsy#RI`ues0exFgVxLf6X z!fRo&a1YF2MpSI|THv)EZsLq#Ay46%{qdf=7Yr?%osOY=Tn0rL)bt@{c5 zVn7W3Rnh@tq_O8}kp@6DYVAX^-MGIP3!q zc!84hA+m1cVHy0c8vK|~U?>Y6_#wo)kXCWG)w414On_9+(w|q)WU%nvcmzwtMH`VM zK2AL|gM>r^pQc0*G!I1(skbXg9Jlbp8!rZ|`uO+z&+{4iR?68UXsg8je}@<}4x&@J zHdA39Wk}HI8dbT5$GbCc+gL#um6>Jls&Tc+n*nVEXJgJwEq= z0Zun0ER-`G{A?FXh)^5y+zxr7Ijy?y(9^pM z+q)o(1wcSs$ECZ5CZje@1f_GI9>DpDdGz40;a~|6=Q!*;FLPgpQG#6E5w_@_SX*Xp z&a9t+n}RV`anxpjmz&yWY2Ma6ob!8F4vq7+V~9}#F|WAa&fD?4SuWW zIG7#Bp0i~5xH0+9RhKa&DjxIkJ5cu}CF3R_Ou0UM(U}-%kRO7PH{_uVda&^Vm(+C6 z1SL5=)5U^_;$lHSZgKl}iZGzR)8aL+A=kjwWY*s%t7YVm5;6hBL`ccVN*Onfe8>#w zl#o441~jB(m^YwdXkZ%xy!^?Z&{^$@GAzkB1&@>(yKe;1wKz`D!1SF|C_eN=h|O?C6L23PnK)0p&qmA5yp};0wSRGy<3v7zW%fGb&wm3#M&CdwA=FSY0=O3|J6fsQf~9?CeQ|9mUNzm|+yE?8c8+(C z_x$5QHcGo#vqmfJn}QOy#lA~RfxC3+Ql;(?v$aI3_f@VreI>(Ui}@St^C9FClRynaZPxhC0(U{e+Ndd*mupUws;ijRu5xw^ zM90Y-P^Vjw2sxdC#cQXyK^vtV-bJR|{~K{jGA7?27 zS0N!2e~fBgx#!zEE5x?sdeQ|zxSI|hyzNE1Wpg9Hh*)y@ooPsQIocv{23(a%yt~60@X?eP&^1_)fhjPNdgOKn*pE7joY)w&&Li7pjY|g@hfN! z;u~grlYo`D<Y_SCV4iLbgRB|P?m?A4C3I&4yOpl~VglFWv{FD>xH7+$2 z=r-j^^Fh00S!IZyM8p&VKLC--#<6r@2gi{iP`LbyUDDy6irhoa!1_2bIle!0tqbz`YBu#k^ zjIlH7!&$l;^>Dtjx)_2BtBcVT18S(M=Ndr>2p(4Q?2LL{Mq4{r2!SQ#@x6?Ck@^N; zNEStVuCui<&s<$&16yDdZ#%@bnuvTEuK-)LMa6OI{0}FJjc}qTqSoOxBWi(8$e$1l zO8Im~9RoLqu}CIh2@M1w$YsjU>4I4Ql=wMIPOVmRYt-U`Tj>n`Ns9$MfCNx-svQ(H z^{+ObFwSbK6{Kz$&=ANq1A%%=G#uh?L_o_mM?e#ZygzN`GtO05Zs{Fnf%hGDZ(Z9!*+7=7|N_keYnYI>#a^YNB8rJP0=Y#OP` z;|HT3g!U9e-UOMmrK;Kd$iZtq=`a?MX2rH(hes9l)d*9#pDlbGC<3pj0(~ zWZ6a=SbpO%SyaM4LWmY0ngrW0a9}HTLNN?b}0=$D$(NB9M&mk)u`_>o?n znjUOZEvjwq?O@v?zMOWJ=COO|tj*<0Y5>!*Rhg-fpl`MaaxjQ&x2c84EXWJOPWl>| zaiCT-+ZxYu`jHMF91IiP4Wm{JEoVz=k>mIQ*ie1W&J3>_S)tld{$|&!L)R+LDD8ZV zeK@RWq){F;u_u|v{s7H8yoMW^@!UHO1IMR#N^E|geCtK$C+7J(a&1(p)zvwLZ9Zr` zWxwlvLfB}AEGsmXlo?4&IL92P06U|OElXUa_mB};LHyEy4zMWr6p7j;tQO^)+?a}2 zxrZ+qH)4W>bY0O^|37>09%NN@@B6Mb*XpL9uuzN`(9E@hNwcFn+$s-n-2Tz4k5O~t zspHv2<)-dQ)#cu6)wR%j%k1sh$8#>(w%Q>0L`B7j+87j2P*hYjL|Y|@k7%oi_(nxV z1qCIFuXsP--Y9f_i z%}t~wb%U1~MfO%ub^2c?raF>5Gvb=l8<1qL*=NvhU(le&g>j8JwKa$)vdBtP^qf|Q z1}Lr0qlqC01?7TB9W!0~?`!8f0y-L^2C(E^tZ>9b5VR>c2)ke7} ziDxf4h?>UX`00)O6Ksxi8`1DuYBxoe3tmy}lPJ8PJreS;>-0cvb>l%vyJk5&HQLJt zkxXSHp&BHD6=ed*u({4&&~3b*OW87WCuxHOZ=6gTKQ5=Sr;5wzID>h3W|8l71*gEg zxtviX0jJv=8)gghwC~FC$EkQ%ysxpF7!R1f;q7lur}oRdO*PSDjy3wK{2h(l&PKQi<8B{qW`p!*+YPtxu- zGPdH5))tWr?@_?TL4$qdz{eC?ylKC%eFlOUKb)?Ol1+9lORkeKMH?Tr`J$C}f!k^< zmq1V&N1nv4y_d%J=nQ;YHi{e`r zgQ5y*RT(c9Hzg03S8i8UZU-v2Yn!~cgH>$6SGzAq*M1h}ds-$1OW~p_U#P1FJiw3n ziW8!1n;D)J_Oh#OqsGeNU>j7(KE^>^DPODdojG+(FrfaN-`ux;**2(nn;rp)(aA&V zkR(V|$wy;Na|-wg?rX|Az(=*70m+i6rp%I&9gW8ACIhlSsNViuRgcc>i2AuM?mYbr zp3o1j>;$yBtNe#6+{4^}I!`Z13YK(Zxq3?nR%YFG7FXNHD467WlV6Pe%=iiWYEP#& zNAg57r4x7}NR<04xAT%)J)A>Z<+YWf-eqsl=zvN|S+GrC>V4~1pZ0Fswg~`lw%?kY zH`tH2QNJkNpzGNb0>DA;%k$w-{AJeJC>H=Eq1#+5T-8)5xiG25KDoGBpA|0ks(s0} zN!J?Nsu+$fXK{BN&pv&JZ`d zImvB|=R}a*pdaVBk@RambRSO2&5Pz}j;@S&madyzytlu z$*myWOWT^6dGQB<7Mr3I$jyrH)se-pyLhi_&>eKc1T?hNhF4qjvnCfpL6S$JBx+6s zG!z)jCI(M51>M|hm8kqg)3m~T+rjK!?xLo)&7zj{*C=liLiPaW&UJoMDId$-tonpr zq)9*1!aY=DAs7S8S5FWIl6j^&B=U(Ov2z=VuO;#sx>tC20X&Y|LGSbwBz-ncUgE|$ zzp1=a`4`GRq^eMC@fZ3v>r4K|N#j3j&Nj0FG6Z59jB|7IG7wEGr;22-ViDd2R-Kd3bR;y29sX)|l zrn+DOXO^b1fkbE2C)S^92Z_b;v@C5jEi2+0D;w2V8c&NmP&tKB?kg+f8mk&j-0HZ- z+D0|z#jBz7gF3Kw-&q*MAr_2#F)yGnbGOu);We-6*}A;)nCNapzGR(HPC=bSLTM9; z-I*%^u&I1TBi*ctFtoTZQ7Pi!h2m&irK!_OR7(y2DuAa3t*Q|@hwQ*qcyB^|Vkq~L?bkywnnLL4y6IPPVF!tox9BvPYu zVPySn<*YRgH&gG*OT}Sa4<*xAsqFUiX=zzcIFtMSHp?=zmU4crZ6i&KMps@)E($lA zJ0Ty)7Zho;P#Nx)w%O!E@68Mnc&0PF8h}$wznPr5^h>#~@(E)k6&%0rev0OcEe==< z+k`!}aU;l%WO}3wq^RJDa3as6vv^*t(d!C82UmUW_zW@oR~d!4I~@8tjfB z+vFuR%Z>viy@-UK7cM&cj;k&iJomp&%7py9^48C1FIfE5s}m+=$m`RyzWQtf-_U! z%$NvMw_W~SCf^N%GwM5Csu0z1|Aj>Qbb)=jUnoMoN#_rNivL8esI09EAPNbz%i39k z<);749T`e^XMDNkj4=NXn8&0C{6)E!!<@9-@uhwwuOnt@`6pNn*{;lZIEl8{=YB%N zun{ugDY}TZeo!8L2HAbA&3{m%C>rzt@VeTt9A%l3$w$g&t66KA+UdQ zurIvf-aGHU^wztc2d)D9&F^g)yz0v`)6%&k7o(r^JXan! zt-SQbHR$NJtKwxp4_U5!)U@*4>(=qm%n$#eZvd4|5Tyj6DItigzsn$mO#DpDh__nq z6|24_^(A<0Ga`9Pi0{%8s99Y^gv+?C7nNRE=l1eP`GV)7?$UOR2*ln~T4Hji$w^vX zjc33rRedjd5`EKZdtc+NxED0zzD(EsFXssUguinsxTEO;OfI~9$~0d(rjiTWgd!!79|W+gY*eY) zh%alX12p+oOnj4l;-leO;hm&{kA|wWB=&Q$u7U8z)%Av^QBxMIPxT9e_8GMo~oLksei9 zIZ8Lw>`2cVYOYXTcTwDh-EwM#RB9>8<2(nZ81qe(H#wm^Bd!`=9Z_CnNmtFWD34_q zM^r?fgFLZC)jO<_Fbk)Z*SsXk>#U_LkWZAi@OsHJTh6FUd7SegM?HT>HIf{9z$kxi zWJO)WV2LihBZsu^C^xRpLw+$5C$aw2)TfoIi27DnF%|&eq$%@^D0RI8Bryx&RU;J! z;rbuR*t+DWvkpN5lFe7hk4R3Hjjbj>01}hmN&A)j1Zl`mpl3`cdF01f(z0)gqrab} z=`Zx?5A>*}Kf{+sgWLArF|xXG}1m@qI{Eq`&s);DDV&aqJ6$)6ga$^0v#Lmt*jx{Q!w)V z@FK4v)e}rHv#&~HjL79*vFdqeQ$_Xkj6TeH)FI-U$}7#6QX|~lLxkU4BR$(bSFL`U z9f5$P?lFy2Pdz|5=oB(Zv{-dJhC8RyNu9$Mpca47K_eYbXTP9~Y<)O#1&ng8ix%H? z!IlGI_vjKw7h}>V))NiK>RUJJn;9E>XgTH0Z2`N5xyIT%{c;AbJUudAg+!j}MyJ!N z+p$j7JVB}(AyO9MHa;`fQ{8}jA~?)IwW&zks8&=hIHU;+TwUrxqPo$8wC$Ai0M$)m zBJH+_Z708_Va|4PEe)#}PbWmG+p%he<65eWCmn?t8Bg7b>Sh6iwc45Mx2Z*S-4>{g z&Uk7c@MOg{-%}x1Sqt-l53n)b@({dTVh#(7VXVblX3;|A_Qc(GnxU?F)lRls^R=B~ zw{%&tcaiZ&6Uq|IPH}+&Cu(JmY6nDN?Y3^rKeSxyd$7+n z@;y|}j5G=o$S{5cM20t&uExFx4Km|9{!Vtr&nb!V1EEKbKRbcVFd(5ITd%dEgn|NR z#exde6vU@baqyxCr-qTcPO}5_D|nyufaNq&Q>R>Z^k1r1RZEfa<682JpHmd%%*>yx zR;t|(EGaXi5d}?6D99Xtjf@}jP1KSX2(c}ppndZ7J!35YKw(lf=?wY$hJ1aIz%svZ z+Sfo)HM#wpQ@A$o%GY=IEAlkd@#U366IvJS-qR3tJD)&`>F%?yVF3QOD`$gb653DV zDP*2wnZ&F0{Dw4FWr(v442oiC1F(1vE%E-bh8BrZn*?8!COtr{W+ZH`;HgCyeOvP(Q7Y7OU_8lN zjdLw|O9FNnCxD+)wGvnB#i;Tl*6N$?YvxC+jcQ`%HpZef?aBAO`ujsm?K3U4fprCD z4r!^5tis4eKcuDpYtmBpX5olY9of)M9EJRnVmY)j9eXv0C~$}ZIe5j_BKOHtv(wbaAy3UvRMt>b z)?P>vMno^d;{SK{2SNnn7N`x&)3{#}mNp|4@oZW^8>&%Rt+mWv)x&K6pR<=TN zY(=A&*IG0saxlF{*RdO8kHYaHKe55ISuK6FsF$+P(bsZ zBoj3F`MAzPht*1^0Dwf0$!X8%2v=(aM@gh6D%+t<>p;sI>Eu^sqINZ| zk&J8P$o$A%j>|rJJY6HfmEWBh0rhDQd;KauA@O_CCBMg2<5H${M&Hq)T;r7qERvwy z8&?~@_H10k8Q1XP`Qf`9mwoj3PQF@yT>5mwakaS~t4n^5tH#ypYPEK>rD`!QLXVR9 z8pf|Z8&^ByYH!bz+`LiOz(f1!@ttiQ$P<4u;`!328;%PRshLohb}=rN*Ho*ygAHWq z`C>IJ8CTv?s8&YSn7(ubUQ0{9WtZc!j~-9g*bZNBT>5mwaiPwt$Lf;bL|RUS>3BQHtSDCLikmFf*h#Z z>#DIu%puTT_4L>XLW{=6rgpw>aZ2?P1k?_hqbTY~fM$l=+?;Q=A>(0mQm5PR5M#C} zIli;W0egaK?P^^0+kq*j2X<8SwWIv6QHx+IO|9mR;U~2eKDRdmp1S)1Z;J- z2O2Y59uInX;A@x6_DGl){6$J~m?`&Ly#y>A;3efPqZ%Weir1het7k1mO5Vcwi)0;2 z>$Ah%7l%tP%apC2sWL26Q2MROD)au5c|%?#%D@MH(1YXSg0uVYWv&o)Yn%D%NdWjFY^?#X23=Y0wf}tkbn5Ta-6EmR!Zf zI$XWT^s{=hmi9&`8&X2eo0KBx`nqEcJr60N^@+IwKdezn=Ef??{#Qap%ncOK5vU|1 zM&w7BO5*dKG%=@1uu1_nVisva%v$SY#?r;UgORb zi(y4>%!=!yieELmYLOq)s>vI*C;Uo7t*>~rg2}C|`PORhS9+-F9;UrtHqs_H(kAC) z^}JtRJB*Z6RT^oNaMJT@RSlFVe$|THpYndm4`w-cNlRL@i6Z5Wc4RvNowwFFPU#$8 zAHDS@(>ZJj%lGto6&M8D4Ai~I?^?edsznP?kqa~N;nB0m{SYPAw8m;YefT~1X24T- zKVT32ye`xX*x|8Pqh`eQ8>$(xhsWvGl(`xBMMJJsEAHi(;my09WuK#Zy{H+rXFxtnt>0PQ1WWj47@>0H3Rn*t#o_ofqV7# zcHo$cyB)Z1 zYYkd5u$UltX{2R+UhcU6*lQ0cGVV z@3(}a+RjN{0S$?Lgx$a*&MUx>(wiZVb$JCWGe;$%=>FOad4ho1r5>a*a{#nT08`Qf z)WF6GMg5kdZIz5gNKk3%gealtvAazuS_y@+q-wRP16;pd;`ZujO$7xFrZz(s;>0Mg zcw3#*w7^F2*BWkhwvFTE9oK66R?W^wpBA77OMkX&Y9JNHUZqtdA#b!txQ1G^M>s(v z5lAXYX$May8{H&{K5G=)O84t`9WJ|%dz_W6bdUSLM{)5rgKz=5w#7N`Z*guZS;i1D z22X?ARkk>T^)Y2DTd5i1G`eqFoM}{BoC)a^RZsS)dU6#}ALE!%w~~cab~sz6(rAY> z7+1Z+*^toZsC6@yik~>*paZAIJDf=um7>I?1JHEi4bFZ;l_=j7bLfsp`k3ABZ?4Kz z+Gu~X39`ETo6{tnWNGtvrd%^3+a3q%_6Mhy@-C*4nLzb!m^9HnEllI!fd+XKX~0g- ziW+h=lS9O*nDE^uO-uY6(d1fmo6l7o=ErB|aB7m5fVwWHuv2BwETUO%0tb9f(WGyA z2^e+IAitAM?wn4fv@ed1Q>;P<#)?(U7d3;U^K`Z9ygf0PoBW)JGl~aa8p#5*NWRuE zU|#3wy(?vY&Qp?@@|93nP$SUw5qlDU+p7EDr0EKc;V=O-^ zP3!m%0~^o;WKEF-cQcUkv zn3WV6Qh{vDwW~!~v^bj0r2~a}5fQxg0>X}EZ@L%gqYNpP)BvOiNor8jno)h+TC5Ye zvCxV&TWV8VUXpQ2=VXiUR6Xyt6M$-oo$sOOcDPE@r7qT?dH3PAu%j^RX4E$~>*>E? z{>aQuNI*w$8O&Oy>8LUNh!46$^dx0n$=!tHPRv;`*m=FkOc~PXkUa)a9(Hu*bS}!K z1`63H_#4{ zTN9u$SdBPWpRTB^kl%&TEh4X1x0?TnZ~_Mvz-J7u@XGZx4m^&`OfL_&a6X4uhAydD zbcn>+l^m{#X|n0VS9>!fXIS8b#mGUm!E`cSg$k;4U*U#1vk-p19+g3)?v%b5Gw2dZ zw$7OoQdH}!Zni2c?|sW4NGDXgkCU}@ofYV{rIv5{TN#>;p>OT)yq=D?+$ zC&0pVx=oD7y&aekylDrnim0eqd|Sg_JLXMR+P9it5!JbH(%cDZVTKZ z?!*>Ait)MSL6MCK<8!@1u}#-)CN#$9HfD<>gt}{k;&1_Bbx=G=*MXqOE(p#f40K`z zUx1)Eeiv|sZ8`>%B#x7EQ@LFWyMat}Ks`y1(aI@{0;!10cLWd2mkRwJZ88D=9qhhqZoLM@k5plnq z`;~U@@N&7`>yTPQ%scrh%q*5@#-U~LyXqi6p%BNEi{FWUnVwKA@(V2ccR{8&PH%%% zhv^Ddg}TlOGHJm?O*IC8yhT|3q4&isg!Y{+a!Vy!J{jxMpH@_@> zFFfq0;kfWS_UFHh(X<1p@Ozqbz!nz6gMS%@U<9umteangG2u_cgTtczajz7GTzVx8 zON&ZlP`)$)0(8*MBQWZhrNhI+!}gzs-?jti#`Wl!uo36>QOpN~a(tjIJp8A$bGU0% zZKc)1$)Xa@39n2`He0a!xH1eoJr8Y(m-iz439Yf>bMRYD( zBtE-1R%ks2F$OF6b}`6xLtgB{YJokPcMf5GWTv(FeP)@PwxctzYhu68k(t}3EyvHT)@eM zRVyi5uKTe^!?#q{6)dM~kLtc?XXxhD{LFC7GQQAHaT#|ef5GE|lYXPaL-g7P0#J2* zIjArF)*0IZRjNc9Q(#n{$Uk?8B`wuC#4;Qy3~vh$pi9sLzh)K>4?CAZE3LZ!PS~-m z7^+E5cr`gXy5@sIzdqVHJUpzAHog;veYBD9d3M9^o>_A5GY>B1Os$;^rRSW-W?p>D z$IAwvLf02id%m1=?^}bHUHQ&`pOo3G-#4v$d;7vyu9!D6m%;9`5i~%Dmy@K@*Xqfc9Gxk)sYjkB!h%lkZT{<{qI*+lK7JjOoM>pj5LZn&oc= zZ|xLWGfQb0t<6xgj@IVZ(`(RZ@9-9=j1Nxq6jIGrwL)q$7%8Nh)4hHvvT7zv->au* zqP#`=Ui(X9gI3hLNU581fbW6Xfs_Ub6FI$>2?RoCI<0Pctkp?EH~vply*wA2djP*8 zwPo7Grr*5EZGYut08DInTv>us3p(dN+*X-iVm)jUrhjhtuj))6&iUmk!*$h&_ zW=B>Wp+&J6K!-DbsUjd^gbt%uvU;<=fvRVynmW5Pkx42GRpuF}Dnmikc~_}=7-r^M zj}27S!!R?iSyYC94d)AkVM+j|>rmmUMetYR1?cF%BxHpqLO8kgidpzUyHh2Q>dtcL zl!)!k7Ke*U^b`#Fg>(%lzu2l*F@Nyb=fV<}13F%|RQP3SWQg(dQz~_VZUBq|IIOk! z%Mf*33ekvg0!)7Xgj%c_CbL=r`H|;J*Xe*m;e}wlOuNASEnljaYnj3SupMn0mPaV6jcDR zCI#bFu-Pm4UsM3GCN;2>^JR!Nq0<)Fg?Ls>ZOoYmQ3prhjk$)+%B7_^qQY&BxQFL5 zSsm{Sp=X7FjGEh^)FvvI46uZ&n9^aJGZII7Mk2tLk(d;jk!Vyagd3kLOfMP!j+T+w z8IHtAY#UP?>5Rk>R4aBGw-pxkfH8@M=;qzpz?K(z&>NU)RuoLT;9KW(FnIVBbREmW z3y$-F>Da#0^>7Nv*ZE(@ux@XJV&@ZMjvge%B(&_)r8z`A6tV^viJOB+M})m*Xh_EDf~ru&PHrZEwniD%-B&PiHtDD-y6#aQL-l^OuPh;9N!h1n~V?w zdea#5^H@eW7^;H9c}xWjqK#GvsTY5j*s&%Zjex)cn!zI$4`4#|Tv$7B5?*DWjmZg9 zFyLR}Thu>{j@+~2G zL{GANhEtLKiq7uoIcpDJW0VmIO^@EEX_3+%ehXDYb7@8ilR1bkqPUR0157LFJ3!nW z1*R}h9^vweC-Fy%<}vcd6b5f`emTq}Cl@1CP43sQBNhnq6!F+wOI}VvTk?3NJ%&Ta zZx5i4B3vb!J>3tHB_pW(0@V#W+OHTgr zxdBvmb2qjL?_8~ete`{d44qnWs9HgZS0&_? zPKsc|@v1~9Ft937)RhW<9~Q$9g>x7#W>wRw1ouUoFh&|4%13;i6aK?Et(lghplTY4 z`Xb4l4-a(BiBB+!Lwg zh~>~aF12CB?{WP;|DxpwSCKb18s zmY|xh)=Y7{I>b-L7#VAS6a6yPtM~(cftXr;I6`j^W{XGa zI*={?t*+oAqjk9GVNcivu7~4|EPkl#tm63ah(*QkGi!en9yUEZGCXv8>4@;iDWw2m zekdaG(C}}j=nvMWEjpYP9-*a#LwVx|VK_bf+ps7^_*?fz$Qxn!gDLvs-Vj0*^+qx5 zT2wmR79Zrnw8e+BSlqDJi{UsL2oE$*;1S9411K^bN8$8R7#7uL(X}~_HoMf*L+M%9 z6!gRK>ihxLQUoiF(Ne^Nn&eR^heu}yvY~7i!&f1C z;l=b)#4s&I43p#OaOc2nGr@@kHJc(CqlSi`y<(^S1CSC7{`@Bbc2PJKz*tLOS} zcSt0xVT~6iD(|3YEF z$caI}t{pMP5SI%ze{yDie=YwQ-;+dVufiSXA*Qc@h+f>&g{kuR9u0T&{&pHsN%R zgB$&Gk(w|lOD(cJTbU$OQhV7}2MUvdBv=@=@Py8cMplWR#%iKpsTjhn#Sr3BZVp?M z7{a(wjZ0l@Ri|3YQ-7>fW9pZ;1Ay)vQzWpjE9frL4AE0`O!20pUzSIuJCg`x0bzStUfCj)G?9&=`~1x`a3)u^DY+X(bY z5?TtXz}{Q|drJcL79-te^}t2$En}rt>tXGa*d>xtKxc*vFd5}81$R-9Vw)(omR$qY zBr3UmU-AF9hW}=rrHNw*|A+AZuK@qgZr&~bzxO5a|4z|s8pXxJI05%+BY~P7Hewq? zB49`a{HqrMZ`lzI!)xhd2>*vfz+Zs~*jE*3!0>-a1sXB|a6kVWGyxhN(KDp~44J@x z4JPoftG3q%<7C8ZRgulhjhsLB5aquS^AAGI1>7(v&X>6<(oX=h(tamv~t0YbnQ;=V8et9+tS_uvv~R8`5MNbh#}A zZO^eqpN_#H#HCw1n3{E>4qY3cv0d;6Vnd9?v1L$>a3z@t99vdYfi)g@4bwTcXq^t6 z>UP1a10k~*<)iRBz@kQTC|5a8qhr45eaMd3s)m|$$WPQzQ>CHqqT*k)sGL!<#%&)U@o&h5mm-sX>Q<{3M!7NuEM=dKb_P~%{KO#r1D;Ejq zE^^drhbF%gq{pLP$=kw@0!#Hwb_;U?$n0ewr;P++Z($LyYl6?U9z*A-C4iZ93<*BR zjXFmyTk6C&hDDBA^~=L&x+6y|m+m6XAg|~cE_&yvZ4t{b;3oLoB1f$iC63w_H(q=p z2|lyu)rRQsnbz?XpBmb!Rq8<45)O;d(C>f}jN+ITRmF%%#c3`ceR8oyV2&KMb+%?R zmAH6yh6Fq&<)q~$JO55^XG+37T4GHQk1nr7pTc1aF69jRFcIS>3FOW9pW-Ar^VKRV z8!fPnxtA>E+$Zf-GrHItT+bZ~B~3J6E~7f$EhSa_v-^hkjm|9{!uuh-cOv6274H|Y ztQ7P6-fY6};XTksxsglOJ+-7Ljl8n9f!_F<8gh)y)@&OkMNu`!*;Gx;@g&Q*;E9fb zJrW&1Hz`3~nwuC*v0q1V_p`X%?UCyegXN=cov*_G#hNPrmBSi^&(`0w7Ve~FHrq}h zJtNXPr0bytBz)VpAf&<~`6zE$!>fIT4{iZFSAsL{q|#bWgJZ4RykjB^`AD}JT(mq{ zv+N}9i&CM>5q>U|2`<2o$Tm~;vawhMDzR8R$ss8M0LD$jPSs=GGGWm6wG@N)@}OiB z25q8I;6^42{tV_M8g#0j!yQ!HifEeRa-jSyNr8f>j8dQ&bR%3+G>8G*WTW9xQe?V7 zofIg1`e%#=XwZWwjhXcT8RDfZNqWE{E4ekaiW$Vhk^YAPaj)r?OxcTDinTpH^RpsN zaGg?WQ#-6`ChgFNq68FAkCJ9qN4iQgC`O4-x>UzRVp`j?=?~dWQs`5ZZ#gH;g76AL z^#W4XN;V^aiM=~sn-5SqO2d9cWIBcX&}uuEV~d?RgmZZ+yMnlEBHaohLqE)3mMaZs zcPQCN&XOV!bmt5g=*VyuTL~{mQvL|CJV|PosoJe;)+zmqox&h{EF9AuPZo#PsYb`0xp{YgAVjem%M#E+>Iy(QJs-E_O*f&@PprhA}kG6VjWVHqQJ5?Mt)S zAQn**PAz3!F)ss+4xxNTh-!X-QecC@8jAMGsYj#5%Y-9fsIbOMkTq%EQP=tLJoJ+ToZ49t z5d37MHJuvf5?=vF8CHA+vJ$NWk(CG)uDO`6DBT(7VnXw_kYAz@S5GyE#fkH_t zY~g~lC+~h`c;Sxo;X|UxKzur)@4w3?nSKgMSXhX=K@Blz*N`AvxadxCLBTzG_j=E# zxDj_n&XqITa9VjygMb2ih);2$c`MA^f7#c=Oa>Uo$QcLC$?suMPSJ+TIE%~^SJV%< zZKQI#M`DvvxfCFyI!iuUt8zNhOU=eUs+sm7h`d(KWOzo?C(4kPnyEfA9Y9rbF8U>6 z*TCJl8fu$p6{CxmbE`v0X*f<-TC2CZiw=W_yrG5 z+f<8a_q3DeS>&SBo6`TKNLiZPS~j7k+%|IRXaO0@s%9n7E-e?{a4GgeG)d#uRSXAc zY>eqSo!9GPPk4tueS%pGw6M)I0!JF4Qpr$hY~ezEFU%p}(M#1k$%0)CMZHp>I?Se= zQOnXdQ4Yq)(WAMF7{*l|!>Gye+h`HOa;d^F8U>-o35SqM$Dp$$vI{rz5sSJ2hkv8TPvBZ4arGW8+zPfTC2h( zO&ObKvkLUQwDDgz6|aElP?`=zhN-68sN!p-n-EZv4(yUs_zgvz!W!}zMYjwI zHCT^POpX~v1AT%%RTzaWLNsI)y}M-;iQrE&im53rpd!cf4kEo~P#H`jeCa4GjK0ON z@(uY?qAINPD1Wb2h0Et*tCj1j3Q~TC^n@Wj0ip*FP&=!MpQ3*QdV;djW(zJ4nFz9o zR%Pxcm|P>R!OVk9h`g4S&`^ii4Qu$+RERWd_+;-`LrbDI ziI-Ct*D=D3%~Y;$MA#F=X@`l^W1JBIJlsn%e{_2cH5jDwhUES{1_b@urB0y!GIOqb z8iaHLuixsehQ2G~ffVt=lcRj&VX{*Qj;&S*_)x46WSoOwKPdzn0SbY-&Uiq_L?K8S z4jdk!zP6;bffGE#VJ$$YRtHp8%@R~rhbQ21HKM5~1Ziy`>A)_v0lyWe4M=`hYzA~` zQw8vS)!Gc?<#U}lMiO;5Hp7GlHiP2@&pR4)&4pz-^UjpFGUF1lp{Gv_x=`2SRNRW; zh#$rKn}NTV=Z{H;S>)vO&(V$&yyW`ABGSE*=foKQ*hLta_L3^+bU};B#9>PH8nj@liXM>?5 zCasJs{;mUS>T?i#0`W~ZP5~)S49>7y9!w0*v|HMccQ#iZtF{r%K6#D|NF&epw#jp5f8%^CT@pbn-hYnL3>1$fG zGL8`X9AR9^q{)PcBLrZPxf2*!%n?raIYLm+oj_rg%g}Qt1Zj7IKn6z;5E`#cYJkONw8))+H8VbQl(>Q%fpnBfPMAUfgj`X=6SOwyimF)xpFY#UiyoXB zAJ?JTk*rOOgro=f;90klJ0XcwauX#lx8G7^B)FD5)^MiW_zdO@;H{0$DR;u@F>A1e zsXD9yPbcd?uES#+u?7v6#tW}n9yMsWppAVZ>K1b8mMzm7&ox*6dPYK>HD;w)f+YoI zcb*oEbLGm?!NTV3uvoBr);=y#a127&1!eLO%Is^f=P0LT0Srhtn~3cCbg2hWfjn&@ zu-LsOQGSAziCh>wwfHj-(}-&~TiB}1KAMkFEV*%MktbLG=|=}U&bf>(Sq^-Q-7}h? z;g}}6p$V%FuXXM#YLA}Kvdn^|Q-VN`K>48qC>ET#Mzb9xh zmki?y+=Cv*iXI}43}_R2u)sZ=ii934Leh#ndT1@05m~P4Tw#F^Rn_B_y30eu_dMvP}9ff~Y+-s;Vt}})Dxb7aBWm;#Y zmo23h*JtySC5ukJ{C^S@RwgvdTvxdtkI{8_kO`1_*}@;Co5S&YcK z?r?Cad9u&7P${0;=j$vYn^!XOiS09$G?rgORHAL$ZhA7l)JSl2h)P6Ye^M&ZVJ#IZ zF(=M9pps?7DhsNAQg6?uyBLWD4KyL{%(Nc$LFk;)uZ`2p@?BqA%TnszN)^pIgFlaJTe-+As}fS6q1fRWx$Vt5ypg0%pe&nB5|~24QuixQVt<5 z5;c*J#UfD$^|%#Lm}3x&MHpnV>O^6cSoFf#tJFk|f)!46pD}3A|UC#;q0615IQ_EG9ib$0N30 z;w(9(NNQrHrlshpM%R+3aGn&Yi6;VYQxhxdrer2ciaKK|U|ltlprOFkX&^em0TvTz zys%*fvW~hI%AV2G_=q6Zy0N}x)|+kYP{zV9IIodgTq>D$(NS1`llvH*H-=QJYtj>~ z;2V+POt06U#NoWV9yphFx(D}Zf!l#*mp!l*J$h2-tO4nykzjwM5R4!pUX*mjw@!Jr z0|MgGf@;Yn4|;OJ{0F3~LEc88pYAE4pDhhH`50f@3A7SH~P>0#DId%StbA9j|7ELAPU7sg?JL z2WAr<$5^~*nm~-zi>5LA&5Ne755+vN+G>Vg-O3Y0JDCv@)pnGIESOIWCfMzS*fbBS z@k?YyA{1TDR7Ms3rytWD2De1EK*IQ7Oflm-)-gViOE?@eK6v3S7#|tW%UP+wqQum4 zyEvY-aV`wxSdZ~(E;GKSgAT1Oo*1Q5fyv0&D|n30utiRo4BruOBTPw(3`wX3j<{O6 zusvdYCk6%pdXU)1^dM~?Cq01i@dbs%RT!448sqa@itGW`l4lQ`7%{#RO61{niEt|R z05O%WGqyrz-kvnCBE$bQWo8#R&JYV}tDave_2m9_ft_x0Eyhi5GaM2`{~ev_06c)c z#a+xKu!56a0jhx>ADiPd4wj4}idW;i1s8ZnCz>r(E|4uOv%*d%oyrAy_H)+;3W=h5 zDnd>Tp8!V4Ng#8OPip$5jTjbGf6xt;SP%_XWXuc}N6<54dZY0xDfpA%Q(Gvo{=zp( z*D)_}@5f(VPjEsw29@|{OQHkpc=jT~Z7>9_Dp&sQC z0AvUW5{#;8Npl1UAlXvh9i_tHg^h79j~MgNX=vM=_?3j zxUKmlx3^}SEQi7cG8A%N*)(F8=}H>~2`jO*SH?jObY*<@0PcWGJyMW@*xt@0)_p42 z>j6;W3hNPoKx0OwJHsnQsEjS!^g^~m8{cPTWTg*_q%8zD=GTx!LVb3E2(2mtg4Ktq zZtNZjQYaDxAaLD;1ogsb^WE@iOLC2zi9(OKZP6w`77fVbgx?riPa!jY779Y!*g8%@o^ZScM z#CMaEyMat{izXUBAC#Oi+*L^!2|At8B0GvBT4tftsm4?>EH@RQAVSCRO(%YwBdKT( zmtn^lUrQazw3s$hhcfl6z&n(QoTxefP^LNhs3D9#6P?Rs1j#T%qU^}q2?v7@3o1ly z>(VlYBU{3(8<`XfH!!IbRtDwMM8re^0pucMVtkIxv3h@MiC95C+!g#B04lR5w0Jsv zR23l=QA(Tc#Y{|w7CVetstlRsnlJxs8uF!*8ND;?m=5o1olZ)*_9>+nGLvd=1Ofb0 z^oQ)EEgZ-|F4ESJn|2^7^BI=ex5&+AWIzD%Lsr9EcOtbuPd0N#XAf!dT zZAdMQO%TXYbOoQaC9^IY=tEzy2BO5FRMd>=XkuM2gnQN`4yC-$DWiH=MXUBrOB+fx zcY-H3bx!aU`ZbOLWDQ66sOMeC+6u zdp`6W9VQYyM@LRn?KwIOy_isIIOXVII_a8}DDLFdQII^iNCQ%pqF>_aW;j?Rbg~pz zHO-Y#)E@yv|4oDbrT5VT*l0Y8l&KPr;zTzJ91E^8AUA#A{gSQ`i1XVB8;wF}Fxr`! zl^xoY6-pUB8XLK52wA5cI5r@QH30<)I}(d67T;9^f3KQVZv`U>VNV*B%Bl%qRuHI> ztHwa!SuAvDiXfxdT4V1)Jt47hA9y?M#_jGixt7-BK^dqtA_rExN53eGFMI9QtYa+LC}O+1lF|Utqf9llC5BH zWA21HF@0bcTMk@@EkL;LLWWI)ulVqSk$pzMeUNsb*zpWX4g6@?MrA5=#R~?A&^3j&1?k6#BD-B6%+FO#g$zO zC~R>jP~M;nw|53iQ9@Y&>+PMPP!bt4isefel9Vamc|NYe>b*1PHU&XNAs=X~+CMW+ zO2$Mm$$(Za{8)M>a5mO|I_i-dR}ge-5dEKWgp7?>9s$N1sC1>WiWH5;SJo_9d(Or*9^l7jB~xDU`G7jRN%v%2-^eylzRBN-!3LELe#Y}<#^ncx^-T%} zRmclZMAreX*5WquDz8-GD%ax6$-R4fdBEGNnbh+9xexXNvvP1;sd)@9tYqGE3D(7b?w3kQKP`nBJEnIjjUr-(VFeGZujV_WNndg;9=%kDEjONRE zYh35Bk=2=YyJ$@qp)MtzL4RZ%{q#X9+&o>0gP5Z$=NQgvlG7nmE*{Mab3C+-w$>c5 z*6g-PBx}uC9o3}P-5RrAwO`5NbJUQE2im5MW6D{He(0NXQKR~XQ5Hjtbcm6{d}Z$K zM@G7$9wXhF%jV-qq5cXRHHyJhNf@U{W*3Z8&YU#kG>yqIP7A|uj1#IC;}qLV80T6s zf{1a#(Ts5ph;g!^RgBZvU^U}hu8J_urO_2WP+^=fgM@LeO718; zF3TF&4a+K|SQfwPv8?|6$FdrQybQ6dA(plOS=L?kSk{NRKu4WLtGh!?>rczHOwnUy zS{_wtU_R4A-};MST8(z9n6=s{eJmWSORGRb2J4W)x?lCIyX!HnU*`jz&FF=sG&w5* ztpYO!t6m1{QPR866*w1*rIExoWtF31kp{YTij~>!PO-w=mtu8>r&pZ@wMJ^yDcoX? zp3DUm=I30h^{FY8K@2Ck%dt^2bB0gC@sa3KQ{!7tl_FbLq)FwZN#&$TvH2;86ser2 zNTDNAe&)1tX!e~v&pNrNaEXjVMlHM0Y(SpKDPqe#6oxV-y{f9{jK!!HT4iJ`>eJTd zTldqZj7K*9mSwJ;X*TWnpu5->TEzSWtivueKHE|w6EdW{ZBlS77qqc%9^+rZl+18P zSG6ofTZ#Y1BDhhJV^61rZ_5CNS85fOR@|L4M6C}rD$mp4I=ZtHv`rxAVU-C6l{q(%ozv$WRuWothzfa1Lx2NZ}S!+N3^wn!t z|I?%lsegI~pIp>?&AXRw{7-bP@`XCBv+j}&sbX%La_FZx>FL)X@{`O-1BfumRYCB% zC&Br|FK;1~dmcWNUU>DrqMMs43o_cwkRlwp5g?rWz7kH1@$%#d<0Hb+xmXa64%&in z@SW5U4!#c&PUtS9Ji@_Xh`l!x;#-e!M%N)6%jE1_H?@Q_{TJmHkT@CX8Pm!mz8RO; z&x4h(YJU&*WVpnCRt!189ypjpL)orOi`+oCpfRAD6e-z+Bf0R!Z4vv>TAb2i;Q?wI zA9Uz6;Q$YlRpn~ZUPZ=tNI?N92TZq$%wnSmYL1Io_tG~+(5@&WMji5fV+Kbhbgq}P zLL|B>jy`ul?*SvG~6_0%M>NrRKeS>rE zU9jM)7biRNzij)ZORsHmUZ6&Hn;NmKL> z-iiKO5~}!yg7XAVa3YCf`WGvJ{>28Mf01#u;OwFd`j6PaXpjC2Jc+!w;vaVF(f`;w z^baOA7M%N!{`d1>MgRMIus;1Cotco(zX;!mm8@8c78v0ps-0t5IH22(lC8p_SXl}~ zp$MfdrJRf1QW#D~p)Vz^g(GRS=9@ikOtRVmQL;KKr9Lkg&LCQy zm6E3A0(ZhS`=p$M9gM8tg$lZl>hEq~EkRQ4fh+%2chF2SA6u!v! zrznC6)R?l>;iUIr#K7L6rlLohOstD>F=j4Aa6wpLMZ zoSLG~iA8NpSkz6emE9mp84#@;hC$EH74K}B_vUXG{b*9Ao1fSJ@vH5ZuV4P`)n`r0 zu#(p^`1z}|ufOV?{{JzFeg{1_zxeU}?_9rr(?vY);=8t%&Q5@^aNo_*tOiV{`%jBi zqnyq}L?O`DDkX3%(2zK%qMrz!6emRqMqvxI!y>-5{RIHSX>Rt^cBN3{l()FZ__hO( ziuAtL|6$+Ubvf;|MFPS4%N2>D^=Rs%>jk6!44nW|5Bv#YF(9_Zmhco|saY*ttbL`n zp~$MG+cL|X??L**Ec_^){*aks74{T2VJ9%tf3%--;Tc$KKlFg+~%eo4frG~|Arlwk^&V&+8O|>HUmLpD)zV(P}TqLre%qInqBTz-bX0|cxd@$-Q z5U0OK7~ilDQqB7+MX?|tN-*cTPGKx9;_p&qpH6?50TE!nCHB*Hb zwY4f9g#bS*E5=OVBa~S~B$T^j&h24}9Ne^>M8t~(o_RBjqZ5Cj)fZOS z{B;H0iXFGFA3I4RjPGHLa-kCpUBI;NtEeDG9t{jR-BiwnTQf`8AYT_AQRBJ#({k0L) z5kEqR7Hd}^iS?OW7(scgSiCf0sleP=_8YE8)uLVCdL6gtx7JdUi;WhBEn-##E=!6N z>@$)H5}~@17UyoQ)>LBo3^Xjw^uB-3=83qKyDcZL&0ZP60}sV}5nffFt_^Bv|5Z{B zfSCN_#c?$cLv%J55(TCtqcEok}GfgI1Ko7T_Nj7>~oLMv!eNb zrowQ;dct~KHE1JYz2{S;sjm187i80vJ%CZ3b+R3TTe|3zs~^1X{ja6El5e%=?N_(I z`o-cW9}*fPBYN(BcgHOcUi-x-|4~+Ww&%4k7v8t+)fwwW1R>ak=9Cpn4-0Qf+12*7 zf(5UbHJu})nF(H2eIzS@Ed{z4&B2!=6=Oy=n~P(NU_6gfc;V*x+hz>#Q*gR{>)<07UUu%5z=7$vEAM{gqbufL6@D`? z&1}?(c{AR-_3j&9d0V)n+4}6BE0=7z@u?LL0wQ(8!zIm@k4xWVx_0I&%Rc?=xT_%b z)mLBf`dH82~R=oSk(j_;YyS6wfGe^Id-13_>uU|Ivvm+;EX6g6LRi8e+ z_OTTY$ot((fy3)w_ELt0U&s8~Fj>C644r3L;6hLdwmpEPoyDzewG-TvrTW>T#nz1J z75thh^$!w$LXXbo2QJZd?ycZuUB&;yNx>%FpX2Vga9^IAou-fR&GP)p?Luy&H}oX& zYh@~at&E&<>Xa(5Yc;;b1dcjYUQuaqRpoYd<(8rCP$y81px&~MYDl`D3%SK@q?uM% zdfy=01CL`*?_0n6w0GOKO+4cm$)4V2Z{(GR)r)BTxKq4gqg{?UrTFtovZwdl3TeXMXWN zD)^UDm)^UjchNhqZ-4&(Rxh$W7p%MDvNs?8EmYJr4G)HAw)?uE{w8T?wk=fHy z8UobVu(a zZ}+c%eMQub&mUND?d+Q`{OIYZ8@{rnet62#H{k?*jX2U5uWz{Z!QWqe%^?mS2DW~% z!o-039w}e8XLj{rXprB9(*=^JZNBX8$!W&Flp>A-_{x@f+epLjbIP zXW0uEymHNFOt9#5B~QSVBSYBO3U~rQ*w8< z0a9*xZTZ_5{PA~J9qW+tf;XOAf7k8L&J*7dQl`3*?MZh-Mg^S8nAAhQbo9*jSY|lU zkVSw+Y<+w{e26%{sgC)IlR_*$*2vl$(b7fdd^+dyYget_YS7E}te@R11`q6`*+_*UE z#@3Z@KE83oC%?bjrf$D$S$8$Upbvht`JE5%+qnW=Tx@ODy zJGRcc;*0C(mpm}nKCpW0r>|_7Bf5|a=G=QOd-tPr{ZNDjchm2eqdcIP z^?d#D&NrWbcKaHBw(xWA`D-s(_wYlXFA`>ibP`ixd6cA#@p2Z2ys6ybt3mAH?u=74ZA$FN7tY5{gC0OA2OSyW<*+7Pr_I8F!+m=vC z->5g>1dFz%X`wRUU*G)N!_Phb@@sG~(dZp7&UpQc3*UVKH?@uUcN?$x`m0Z$ctqZO z4f(lG@4e{{?=OAuKUC8~sL!Wpfj$y90YtD1GFoW*#)%VYMHHbg_){%xt)d%h#&q*R zqY?jR)*r6i`S>SKo#;k<{*2#Wf9IwA@Gzi+IJ_&!1kj=H+LWJRb21PiW$;O_}BJ3Kk8Ez}n+{O=Yr_oHPcXW%aC^ zquTgO!RS`283{*#e8nb2DKLgRmPX`0uBegLPlqH7G(9nu&03 zb*|#cP4Uk2zg+zF;1%=lhsBF^{_eSj*Y3FIoW7ZWN38Sw%eMaNl{r_Pw-N9N9=Bfi z)Q(#&-tZy$lK6TB4ncR>GJB-)-j+}Vwa}J=MWkI5MLiLBEO#gZ2ah5#cVrOi~Bl zi0YY=)|C8Ug_pyptp$s5%tb$fT2d6pPUe+VF_31XDXo(^!BYe;Ya{{B`SQI@*S_$^ z%tPHQzItKbf-QqLJ=@_X@zU#`zi7dNWqn^qlQ@6Nlb_x+@aikfis2{hx!iSH90`%% zH~E(me33Ma(EKy;Z$Y+NfLUQZG&cbTyGb**lmKhU&(~~Pa{J8-ZhQYDMlFW^`8l_r zbHUjwKR(Q{HyEak1qoXtM5lk%x*a?VjH}HJ_eq zBrpGJ_44QEzPOQ~z4SmrVQ`&+{EMjs*W@a3iJn0~FBSLMWKmJ@cb7F;TDc_!iP^mq zJgM=xgdi+u5k~6Ijy6Qt%01?U1Yn0|ibXv)Wi86pPjmoNrehC?cvDhmEzK1!bGuvu zL>-b&%YCp=E(MD_g@2Pm(H4*?&vjFcXEc7Q^7T+rON^O>r@Pltym%kpuDm!2^Ulfk z*5T6;|F%Ru`HH}>Tt0aP_&H_|uED?6aUCa4UdB92c~dQ|ik20%oPyK_4f#$TE^k^v z9WEcxl+(T2pH4gQvWZIm&Z8H+djA!RK5BF1{M<)3e)jyk_dnk1xcn|P7pWNrdKnAM za$)CP#)~~&1Dm40t|5jkNe&uR@nOwQq<0534*^1~i?pBJh-G<8HR4#_QjHjv=Yj`-DU zPp*6A^~aa@{lC>zjBlUY^<#(%ow?@CqMLtQg7bR`T$1qVQQNEUfNe!t8dea<9 zn2MX^ANq#Mk>}$uh2QgW{PinGFEvsa{Y61hnztq>O7oTk1r&cpP+}nfKhARhi2&>YFTZYL5o6 z9~kw+X)YN=vM1=7v2^LjZ!Wre_Nihr1o&LDaMQg{e*C~BF`1xe<`=!!y|?YgFP}6X z8T35%)|{_yfAp#M4yxvn=JKo39Hi3iS4ZI;jj;Z&+)P5ftuLV)`1#<{Q0Fe)Vlig7 z-;r%#RO}C>!)UyY$^l{4A5e_Rra}4s;FRh2Y$F1^;-x!2e`4i%zeY0>{cXJF;Va*M z`M%E{0y{;3zB^t7=)2?VP~ZoDR#oYxGzC_)zd74KUGUzVb6=b2#QX*4Ex7vr&C9oG zk!p8xJ|)->sNto~KY4(sw`V1i(N+{Bk8roUmPr{>+)8CA9Gw{nqmmM1jim&3pyvH4 zQ_V#L7nAs>;fvl(ALe%TWnuUO2o zkvQAAw_S7X?7NqLD&tKqq(40R;*K}p{bS!}{LX|@T*Jc4k7BAbs9nl(_q;=pp`INQ z>oZ}=&4deY%2u$z^Zo=q&)oLLd(Yjp@#7tQU0U8Fi(dZS_3JO6iy9{_@2RiOziz`5 zw>?cjnKo?An)OcqRd>DinkjkpOi0uJcVR->JmPAfnBg3cVy^7lgF#syls&Nrsae+^ zY^WV9yy4zE@4ocbyPjv1Vp%u8w`K6kJD0q`X%OOAD+e#WrT3Xtw<}YKw1fA4)%(_S zE8d>HiW#h<9o+I~)z5$1NS^G@i}BLB+h=WfY-Jy=OX1lAi|3#F-en)Y|Ltl8{ZH$} zxYHw(6#wz!Cp0Bq{KQ@;Y=0s(6PPFdcEyVau~DS$Ch}|AaXUfJd22uT&3)Hg{p_?! z8HLEdu=UdO2kv;}3;Zy|_4`3Y_&HNSM7T&v?86`Yp0A16xn&zI`W5?QN?Bd(3^8BN zg5D`UO7w11mL_)FXXCor*qwOxIV+ZI{CLfSII;xu3%30J%hj{Dt>LF&zIRsYvOg;o zkohA?!bni=;BRApK7v)KOO6O#B7eRX9b$ieE+osV8{R6ZTN>Ry2yVBevoCq#p=94(js*p~Zpr>-uCv z@7#V7HUBcpDBBxJ|KH4b?#_i*4c-&4VXS*?{==X2&t3Bld{1iT`i(QUZNL4KO9uHZ z@xS<@#~&Mb@%kME|Dr*AUjM&11Dc?}`oweFXV<@Z|GdQmd8b#eo!58mW3%7iN??ix z?1k)Vyne_o3bLuyFI3d($w_?LQ5IL0{e^8iY!Vx?^VLv9Iq-}PhC%tCe*xXGGHOh! zxxDJE*dS>xcQ-IdSR9G$54IxKvstJ>T01qb{er9|x;=`nuc2_3t|s&ls)t+1djUj75zy=HNiqSkhUO?) zFiK$Q;1@+Kc{`zoA4+GJ5s9J{6v4^JZ2;V(>XzT21~wWu%6C%BcKp`VqRwcY#>k4L zh&1nrv`G|6I6=ANG}Mr|iFy>OB~zxmx?RP#X7>@w!Z5Y#Z}CmJ%0Kp83OZ_u$j zp#7d8wUajM459{uzW29V=DhL31Hb)2WDQ+7`|eksnsw!7@K|{M*~%R^zy16dfBa6g zX1DsXPqsgI|0CGXwOC&GxMsxwk+W<67sy)eUfLD9>{D-di!IB8ikrR;e<;sLxPyXc z6c`EKYwKc`C4<0rSt2}Mykqr^H{aTOy4w=*#BCqHx%77{Zyz6RiKqmSOVaoO9;5qS}$c{p2RoGU-LhLGdX4M$B5+M_+LO+Vtj&f4eN6RwlCeW&eTJ-#Q*o3 zy+O5g@2~sd!_|x4z5t;lz4yioFaGk*ZF3fDgP?G2m-`he3&f7h3a`~TTlY7z?PGs; zi*9>GrwbN-dHL+~Zn#$YGz7fQ`)|By`IRr?*V=o~eRYGOmnVz%H|X}Mx4Q-0iyqd& z)pN09swRRDjdgbsd`eeac}@zhIALK% z!kAWJ4(hp--l9%MNh0)ko@Dr-UG<{EzjBE$x&04&BQbA(f6hfW%y@tMzjqRI<@5L4 zwc*vL-<%p*U!IO6#o5=9&{wKN<`xqkyJG(P^0nQ`%&!A7!8OO3*VC$k)Ff2olT697 z#D$hQ!qTB(H(8W@4xLN2y71<38I2~!rG@mMY%ciXqRTd1u%e%wm*V+bul(fN`<}n` zy)97k?rgS-ky@T0Mx0W?;ru~}UZ!Tq@#$7hnrtH?7#b2+1C&Dy#TNS51=6ViK=8{N z^L28{ssynUAN$aEeX5@Di1if9YA(H-a6ie`t8Sc^#!QQY^jREx)7wj1Rb4$+*Mo`#13REu8YvyvI*K2 zqPDD@xULNG;@%I%bznmw$ai%%byMpP}7@(y{p7&)L zrmZLPV;1S;$nwM8h1}86>X#ha_)|jn{237mcoQND@aIGNGf5xnV$Sk7`GW zos8sqo1}>!-r6 z@i)2{zXof3fj(;vi+x<<6D;?sAB$jm7mQ! z_wi>GB@J8cxqZ#~f7tT&z-;NX8Nft_PX6fYecN8`&5S$`lOdB4Lg?f}NJf<=SQ(#gt0z3SV}-85peMZ|AEa00gQ^wzAiW}Aktjj;H`s@6DadVy z3OU%y{DPXDJz&QnRRM!%3Gr+lSy_Zkqt>d~GjEyo(94_HNi3e)Z{6_Voo_)Z zV)`C#iRpW|MRcrUs~HGlScn7DKBGK0hP50k5K7_3%a}7Sj9N98?nT(OhEY(F-v*UxKlmy9% zE-qB40-;Yl)%O}m3wyyy$DJ!5f^PnUACD>jf76DK%XD^TJA=;Tf4R>mCyA0EwI6kM=vos2)6wCc)ABiTUz|XFlnpDat*rF%1UjlGwk@5v@;~WpD~}0t z|Af!+N1bgj&o^>XvKb|DI4mebSYppM$Eozv|S*_|PXKLGZwBY0`B^|Bp;+8+m z7KS%9x3;!sTHDJyv6yb1AR*M!p>xN}!;bG9rh1%2JG^|DrQ<3uZ;FmNq>roOd%nwT zxbvV@eS;m9m@CU8Np}BoW#4@(d?Ftm?b@PScSs_i6MTV0?zm30dYNxI;pd9#q2qk5 zH*`3Y!L;T0&L%ZA`A6<*u??xAv*ax3#)nr|qly1pO|H#@tpB@kW<)fY(cp~+b=I`u z--0n8#Q$>ngPNL$wY0XicXSRPQ8*|WBcB>ufmheG!WQ#T)4{GEb#m%*Y}nRQKsZP?%|FK8bdJ z)QR0xuO6Lq&qvgMj`|rPitFLHq=(_|d&n2Z{-|@fS~fi))x+UQ%N-(7Nh$|DQL)_c zc>xJ_Ozwz!I1CKpu8Htt9RB~=dlM)*sx#j+A~LfwtFo$;S^(LSpChyN=9Ol|L-R(B z)P|X(sDlkW)6?{f#>463nPFypW_%=0ciTgIm>Dny2oM;9EMz0IidABf5W84x3XnnU zVi${q03n0`BQ_(jfcgEu8xa|~l%!H(x4WNNDl%?F+~vF9{r3A^I~5|GH?75V7WtV> zk-9Wp^Tx`ox7?l9xYvV4P--_=TVyu8y{@^~zGjgK2e`einU&tI&n)InYc?X#I`y{r z|6nV^hSRzt7*6Agu+FuGAR;7cQ@4n7A!6ryG?7yr z2wtIdot5SzVquWn@)7_k-EO712w!wGU?)CA%9_oSiSlq+3T}}{^xS+xIAGw(3PD#g z)GHXaz{;BHmy_yhuZ)Icc*^@gk8?shy@3%{N6B6!Bo&aqWKj%?acc?)q_>xOdgq z)NTNzvWGe>WsVw7by%W;?6D3DRggW`VF3jg`eZF%K(5fHvosdQ-g?P?!644JBe`S_ z(;z*!B>C@KsY|C+`O1HnPck!&$Ex{wS8h> zvC%brNhg}Wa5H8q60jgnk>*Orqr|Bl2cYB8*6fH9S7A}F3>;5>n&O-l$Jca@Cj}Fa zuW_oD3b^Gv_bCS1F3Li-E9g=T^SZb%_0_DfRL25__#hS-FPI(7*24wC;EB5K5OmV% zntx=i8&jS*+*y9DhfW_AKepND6CUTn9@l|d{wVs8|JzAsQYAbp3M#+9fkwb8NEhH7 z2>5;=`0l(K8^;EM@6W6Cggs&RwD2YiN%wx%ZP7T4<@-2VQrKH2iq=WpGNYMu|f zqjxs`?6odsYYL*Xg1IcFKtC5_TQ&tZffeKE1_%S5E7g1R*N^*|5i$XM6C(wO`3Lf`-j~qCQDqJ+K}0Q@ z1J-)C>|C@ol`8aN$n0{99m}tE3v0FfNYkMerF8H9W2-GcM~{i}>anEk z`m`9@Z?oKGb52FX>(LpF!BN1t2jJe!;5c@*i$*nRD4a2`eQ{G-bVwCJu#$U zp~r_o;j4kQK|m9hwcHB8nxueK-n@}vU?7B6QV3p)tY|3=>H1$B2*IOV3~pwQT<(T| zl|@>s{N`ARW9f>uZ~WXb_Jn>U{Yn_S7De1ghsJ#BSbM`4kRVrXEGnf$hl$P^gzD#4 z3IDzfQD*_GDr}2@UrP0>6Rb;*o3aKqt9SX57Y2f1!?vtn*e&AKhAQn*abeKz0E@*; zUo+kUr>ViQF7dBXelfx3Q$|$gaKd=ds>*S*Q5vYTb}40vvrOM>$TMn|@5~`oZtRDo)H(7{M;VuG05JkR3_g~eG->jQt0*SV z@;qpPP7Mwb*(ynDSazt>sIX=)NU5QYV$2;|D-h`{4_Tf_%b4cnY+d7>lmU`sUXTn> zX{(-Tebr(hI>^2fI;PWLa=O*#K{Uuxjak@Sx zzt-iDJ)h;8F~PXT^VR%V$D%bms6_NWCzF7(h;b-L`V|$G>{%t_QfEZ3w}iVOCsNIZuos z%q#Vob6(R*H2oOP>Y=bJn4JT)(47frAq?LmBEV)-X9vaDS|sEJ$sH*MM6zRR=S9>1 zzFML_q;n#a!P0I+(IR39HP?FN^)TZFzw%YtZwPBfXmy>)gf;i6EG$<&`yLV3tMwBD z3CR1Sf(w2&+}0$-VVN!P*0^*8M!S#SHlLpRny?QB*z!3auVb%*7xp#mRj{4MI{bF4 z$A}85oOluSjCc|CjAMB%RGzCPfytVCB_c8O6a=k}cI#NI?hx03EkGTdlmm7GEWv4E z-atIYmY665%RX6Tct>&XRLAnaQ79fy0K{A>)p5G?R!L?dJgU$OeoU-sEWBPcAeYJ4 zsYznC<4NLIzS_gMm?Q-K5hkhUPjHeJ_NFY^ zLnN0p8d-!qUmHIYzBQX^9-on!J0>1RHw2AldD*v4>L|mG+aL-eAyDVuC;|ndhIQiO zIn*7f^$X}cn^NtAB!Hmg`7i|KMys$dT0-t@kqb6S^y`_UB++#zXtnEWFIr{4TjrNG zy!u8a#@m)SEOqr~i31-hX`E4vbpdOMZ`TmusJ7MwwA%)kG(K{ltIcFc?K;G3Giv4d zjp;@+-Lmcd^Rg8MB;B~6zbDJK?3OJMotD6}1>zv#rX;|o{JvigfWY|eC5(FT^0=Pz`xp%^P)EtQYbE}vPp8GIJ{T&9lsBF zxwE<>5BW@f1!U0R+mpEUC)r*rYm%1Rg@|-+ut+DDXvpV0_R2}yE?T;oLy_8zIPXSGFbMB8sbYKlD8?*(55tx7%B!W*&bPxjt@)lac`+K(OZn79wCbS`T z8-j!lG9;aW6FVYQzA5i_Ckk?dW3J=ejLxZ6S(8QBDa4;7(-yfH*&xMH;z*L?KBg%+ zBYA*|!A~|5N`KAGh9VJH{UhS`P*(}%!shQm1y{>6QA2Q(DO?JJ_a7(8F#zVEaBzFr zq*~WJlmhe-v{O?#bo3|&ASEU~@&B4jWy#T_0wOtA4cqEH2GKf$N`53f>#$y86fqT4 zS~Fm}^!&o8CIyrwG)2s-C2K5pF_q_9un??CiTmvZ_CDm2aM-1O-L4|vgJ`mLGN632 zrcpkF!5!znd-l6Od*!iTK<}UvgEv3>?8}ebf6Jo#AoCNsZ;12@8Y2DRL$hRQ!B`Mh z?o5#h8~?09@4us~0sR_umVbLGy$RD_$q|A&;7SgOJ<*0$fD3p`)3g?wI>Q;1*q))fzd zVO=nk%r6fZh&snC?(qZcC1FmEGG<>7WEN)>R)4nNHVRjo>9>u-m1g>Fqj075t_uz} zAT!w{P||=nV{kSTXs0$d&huG5<=KgzuY$}>AJ1(jrt?@D<=9I8(irBh*M=q5ILB8g z-m=86aX%1T2%l>~Xv!DI!O|`CE{K+<=hEL>$UAO5LNs^AYcmV@XPq_#SvOb(2e{8# z1w-f%K!O+vRbzimped$Dl{($C1tL}r;Yz(WqIQAi-k6~(0tN%}&x+gf?^H6fV;zIQ zFO!}^tvQDEH(IMz-+g!qwm|BXTJJ|Y#tUyDn=sq$;|YSk#II6)j_bEAv>L;UnoFE4 z`pl7ExBeMPjy0c8Xd<85nsFC($;nD3dg4fiy^Y8S(&mJ;xQHCm7U$GZNf}Sg$}v|S zANn|wAn9|U&2l99hSvI&4(qo7VK6X&0Eh$(R16rLAdvOwcv+9m-b~#{LI6XhCrY~C zaTDzRi?PEwafBC%AS0#I7&e6yTB)y>;o0Xj#p-*hLUG0C+m?N@=8JRsC1!eqZ(elQ zCof)k@h{x5%w9uQCt+_Ut5ZnNOzbn{z1VDf>PgiXLQOUSJ9|v1s?Q!1s>P96+p0aY zwpF{V3~p(p3X4T+$)bemaIk~EH~6qyGbb02C6IuV-9N|&K?M3vlK)z6bJi5UWxmwl z5eBS^EXSk_C}gE5ULH<`D6+Mt0WA&6PG?FOZT!I$JV1a*jgE)b6Zxan?lu+t-ZoMr zFp?_f51zm9x3^#W&aLNPW&u(D;A>~Uxc-axzPR}RaGOSUpE4~L9^Xv)y#$uTjDv0g zwM1O5<`5#WiI_7(Y5@WyW)Mqq!QHf4SNvxDMi<@)*`tx}Y-c=y&sb=gZA*dC9ZQ#< zb_XyL6kmi%8C3C`5;rOW=1KPtOI5|38xcmdlo5&tjP*Kp;L2iCTl~ruRrC-GFQ8>KBK+%DpGiNspa5#Gxc7 zv~}SQV)#HoqIFp`jDLGDFanTRnntPY93c?;D_6JV&I8xtsPpX5-9Syg4O#}uLv#zR z`eq2!1>DdpKb>!j;a|c?+M{+|%K&xQL(zoRc|$f0wq_PWI$vT-0m#g+yrD3z5(Gpc zqL3H6dy&P!t|y1p(u;B!B`L$P;DM2BhmxW6LsCB5snk0j!oPOi3bsa8Q&HjyT@8!#)LY3mQvJcTxP2B`ZyuLW=Dw`uM3goz zBVk(bO*2+>j#r4(ZSbnFJG^S)2hamKR#Crqfmh|v^Ywf}vJ(X{=hnIel3Zea>E<`y zUh>+nmazd`zUNCm|LnbUpI!CTFCnM+o(I=`y77!l&O3Q2=O-!L^qLnw`1Ko?JiGa) zJSN^Wnjs+?Lr++_L-bQy-!wt`SF~qFjTOy5@~i?>8NSU(#G_e8zm)kG>5cn?Yk5hS zD9uW(RVyOaX;XVqq_7A+#cH?h@GZ#K6hu9h(`4k(6tk6GFIp5vps!G#k_ZpGN5)kC z5;y%;t9=pQV>gjE!{RmQgH=DcqXWp~8H5gRgH}q?6(wj+_s~je-GNPzai%9Fd$td5 zmLg2F*DH`Pe=tx|XJ^c<-0dPLfwYugn+XAP7a2;8C|lcE8ACW_tGyN5Lby{5CQ~}3 z*)nS;Buml?_>+J!BdEMNlAv=TvOMdZHVVMf$|Qn}jpCeqJ?(hLCTlEL()CYo`}E@H zw%`85%UI9kE%@T2`FEfE*!53*&uyb!{n6W>-*M8jHxIg9wAY_`|2dzZcKP#cvc)G1 z(>Iz6={6-VWej3LX#S8K6ROz0$Pe~9GNn8!)jTl*af(1>2}Z{~EMN3H^eSgbfYpmQ z6Lhf+KUp^~-%!jh7btn_=%srhdYE)AN-N1*Vq-@mRbnhPmF%sFBJc zD>{9e@xZ)1AOd)zkkPfOlx>ipE`eIAlT>4UBFHQKfL~8Rpjb9P5grCN|K?XW-}vU0 zR}CQm$i4L3!sjmk{FBd?t_4BlURv_Z^-tcv^17AmM-jf<`{>$L58VF7Ij8b^NEhK3 z=5PrsuPJspV5+9(DueW16OUI6r3wNeV@__4=9e$TwsRiu@E9dP?1neOg2e}SDL%OC zZ&54}F$PbRdXL%Y#8YLyLRqk1CCZWK{0=)$7Mt8*As!;xA>AmrpqfXvS2?Q|P`)lz z+20z86Rvq<#q&SeaKR@>J5IRi){}3V|I7DJ8|(a&zk6xfeLJ2y^7AjH>Cuj>bYrh;4RT2;~g7c_9979C` znFfg6R=r~&Ju+(c&aI8%z9v$L96F97oB@iu8n6E7->?#n`)g5KXNRcm6OPpv`-bD@ z62(Tj?k0r&;e^8{&8zJv7}ffjN^M^>GR;k?Ix*yuuYN@ruiBqfEKgVMtKm3VEyjlX zitO%3ofE?S;_4(rP6+o2_oZZ9<&4{6VO~Z1>Fs^(?S1WSUiqqfrObE%&)gb;NQ#C)$~GVjy1uQP@y^j)KG)Ke%9=g6jl6Pz)3Cm8ZH8 zazU@khHK`8F<8x{Y|HUg*mq#?T~IJWLtWiTlSZAm7)g59C zbtw@9ail})J}!_G{=VeRt(;x&`NSwrJ4GF6KT54OF*fE4G*mY=n5f(js05Hj{(vnE z+F^y8+;PxNxauhazC8egHS1N|Ht(!c!ikW0FzB3M!HiCtXQ)819-E`&OCJ~ZD^nmH-mr&0D2A8nS)k+Sp=l{?xVImUGjo>W z@IwYj5E^?qwLycK>y&;t7?XJ5lFI=G%LEXDD-jJ11aoQ?U5*l)&yspNOYxB+A}uK^ zWJpj1qmdZwdj|%GxIXiZQ{=30hARX?R5&g2X?UFQ&R49RSPsQtlP*FV*H4i6vP)AW zKGK3!jm&tipLw)sO{99pwXLYDutFE<~;6zy;`sInsSI zkTUK9<8IM;trHFA#X`Fjhk@WgWVuot_HscvN0wKpAvOpU&dH#XtPgk*0x&IeFtNEc z=oFqCjoUP0sHrgloci>un;1zqO=Og{kcfPEizP_V5XWNxJFPmoOuG;_6!ED=Cwj zVx4sBolSr@RO|eWzo2~u9>f9nbcp9JsFr?Zn1W2tGP}`h15J1IW7r*IBwtB7Mi-0_ zmTZir>==8Zq8p<<8)T7Apkptc!u@|>5;k!->k8OptY7$!$-)HH-L~k>_fP(OGiQv-Np;gHKfP_+>CdiPV6w2-Gi=v< zU~i?q2Nr5?vSmd!Grt-zZ_tHmPOOc`lQG_LL738rSQ2uFVbi1qg*Z*&0w_bPy7KU4 zF@bQ4f$tiOKD<=-EZte~i;3ixmHE{rC%Ji5>K@D_hlVr_W-?LF<~Ea$Ui>eck6!dG zPH}~Zc6zdFRFgg>wG#3UYd_>u*$uUaWugWiGd8QCK54!f+!S8X3sMe+Q{vyx{3a!g zl{7sd`3}?;00f*~KyMYVYl}frC_4#qv#B7C`5~E;A*W~wI|QIbLawlgnyS4fL=UL7 zBC?q$D=~@**jg@At!c3n#a68^r&!FSYgh`WCzRK&1zz+ddv$@ke9zrH9;KcPT60WX z5owOw#d*S@c)u0p*8m)A(P9Wxm(;q-Wny1nr7N_-D-$!$Ea2MF{7oN8(RGenK~%)H zlSTqyp<#d{E>pR2u%K0w&+1sG75q|yyjrAwvPeZxnD%UkgqInt1uYv+ABDpSav~D~?kG7DD`TSz#Kv}lNCJf}i9!!{R67AN{vb4s2$@0OBE62phDz{- zwa7)WQq9sY#r5I)+-JE z4=r8&>Pe^kld~pePao2{Jmc~=PFi{2dC&h_XHA0S$IJ48l!LN_8UmmsaluhoTPa6L z7bB0bnYrMndXRF(VuF03HEoK;PT}IXlC@Xa8K0M7A5)Y{5n9QLp-ZBM3JrT&IvebW z=x(DhJ*Y!)5;GKo^GVzIEl?&4R<3s=#1yuP8Op@@hWYXt#asb2NRJh65+~Xr!b=Zq z{9@&{Up=ebrH3(B+s@gs@%@uN1yA01w21S1qgbI3ZzUIhbU+b z#WGf_sG)Fhkky2ZS{LF*<44fSF1L5q_I2(Y>?AqlpL$dYYf6j*2}Ul}u<$qL9!D=A zUQ=JlJBUyoAfw2WZWLLqV0Sm;Py!qEMZ#i^mUL1}=o@HUf>K*=aApQk`Kd%p!+rk5 zWoKELS(!YVjg^2fCx$|Zo_zf@IFFT2a}vIY-M7?Pls86x=<#HdX{j5C>Nao@zigz3 zIFW_w8-!G!+R=wjNYyVqg&b^5)HbW)6}q@el=!$-JA1Q<5-iO$@&wV$vv3DmN*maIrR_# z9+QtAbmK=7J=G;tN0!#4qpTLRG;*_fN2}9q^oR|WChDL7f!Z~cb%Yp;vIp_`8ja7Y za9(Lp;!7AF^;WKJ2?{c7n%2w|-Jqrj16yZ@hc<8Rj9Vb7lUv#8Q&+~sMuS+M1z3Z?{B%BmthZrGco4m7#o|0*$?i7sB z2nqBh7u0`NYQf}L^e4%)^2}-W5j7bpA}vINRSenSr-`(@2Ak3?BCRi4LhOfBuh4gU z6D?PgiM8sROJxvuLNPs7z1bKb`c7q%NDktlel?I62nS?J{9nV7$|oa*3kPOU4YF*9 zGl4!3wxb&cyDwv&8Au#^v`0ZA!U7|pt;EHIfHrb)P!|M8-i5g2)NLzoy==o4MF~$q zVEyE_UtGQZ%ExcM2d=N6=M0;d&ns&^*sag2v$`YZ*i1!YwR^J*@l}6>z}(fBJb%}d zi$7g3#tnJfEvGKsy!g}=`?(QkvJPs*nXH4m9dIWV2VisLk2V(f$&n%zGh_&Je3lF; zaeI~wDYasT3`y)Tn~?S^RqABOm`6}2M1Kxc6pP!lK*dfc2d~e9--W55|xR@ge4!jr;|v|mKfJyw)r@vVr!4WX^t$VAWr8Bf?I<(7nkTabv%vny*qNTy6< z$UvQqm7KvAwF-NWqgJt2(x_GJx^%QLYE>nYegw@~S}jBZ zOXz5Ju}T_gl{x~XN<9JaEv}8didx-T%n7wpTk`fs6ISd95ssM#g;Fnp9J0~i4AL^r zI)hlsS!a+)SJoLM_0-~(r9M{b&LHr2VjaCaktHXKLnO>vY$CbLRm_*^PBD$MAOLAU z;E6d#%%+is?fSB0Oso;k1R5<g?&SC!S#zZYkSAqsm16`1>VPRn zh&QWs<#Y>Luw|YZ1dHFuIM`$xx1qz5?iI73$Z{rYYL1g~DHKQOVR^Y5tQ*Qc>28>h zQhLMwT!Vt!(Q01~%ni%wb5>?=dNXTo*cacBe@b-Dyx1VRDGzjIj9GaYMn4+I4{Elh zu}fKBfCjIF=JXiUqQ_7%HjHcYgh{7nzA<-i0RskMIbHLj<57OvecD{r?(VIr;{~5F z=E-6f;*PV1*-0GZ5Z5{)F?oWa&`v`Zwg|cqyd=3=aam$Pv?=R!nT%*)p(oDUnOZ5^ zWHs}3ZrT(xPM7cALk)Y|fGpv#Hpvj@?=H?1X{r{1KJx-;MXjCoaz+@*?;Su^mT}%kww4zJL1LzuEBEYoO{e z++XtchIMz|yYK?}p1#L@=1@6>vSkjHo5PAWn)ft+=mASf)I&W`AfGdi%*UX%STjugW3955IVBf2NY`-hbX=+AdB`?W(IR2 zKQV%N_ByeajdB(R%^NW-Qi_1bDo4B!RhR4#g7;VGhigD?D)pFPyg4C}pd=SN`f%HP z&u<47j~V@9S=`|{M32(dqpF@R-&N3=Mf#C`Pl0_Nftvt5)NU+ylVOr$v+UC+`i;So zKJL4L7}MB!VV~letWBan`|54Rjm1rWx2nT;!m+SWUbM_JFCroXD5_>QfvIO(eBD!W@yu?c-JBA}2Ji&t$}7#CahetiO_L+hZloP^s>?xe zxY8BMSx;DLhk{ldW@5xEWSWs`%+8TDfKbfY2C?F@-LJ=^He>+#Wc^J$K6~f=H^wyb{N3MN;(<)h}UULu&e zl-M$qc@g}fFkchist#hV^_{+fs>sgVQzaI{_7?SO+fW~(jkXQ-hrPCKXbjPO#QUCD zHDZ)Aa)kUdhB^rNwf!{}2m^9;9|<)0ump0jZ3vN1A~+j@*q@O~A zZA0|0oOZ3Glp$rA7ueuLZNw2KTZnq;aoI-jatwukXFl9MqLyWnQ6-*@OBXt1{#x5x zWZQperw{Q^uWHjspMJ1wCme&*wijK6O(A|*o~z5e+PJWM_#_1wRoFmZQm4|yNJv|r(_P%daR;ST#-D|V~|HH(B1y} zz9|(6Ck*5?i}NDw@(3 zzS3NgKBF4LQRIP{gv?^a7OXK#3f9cLiy1?cV>ogF#q|Hipn?AT&1!!~8<~mlwV23w z%eKQ$bEqhD)|a!LIhgG<{RS;dL>H+bWzymqgc5t0L0JPh%q)eL>suI`3L01>^r%tW zVjyWa&AoeQ?0fO&TOQkb=S4fN#Y7@&-%oD6<cUB{%8R;9nQsW z&3zr#|3|m?-B9-TP3(P}8r@R6-&uXbTMK`B*{N^6_g5~QcJ*_&-Lih;6R#cZ{ODOJ z3GYjTl!VC)BF!HJ)3CB$;e8R50QP0XAxZG_E!$cRm*NR|-Y3=fR~J~WM0AnC$?Cv3 zC|?5c9`JWKpI9x&R#ai=0m8Qg1#+Cpbkx7Um&a-aEi}ei6zi{`GibX3T+z0^(iDdX zXirzKtWiZ6oQwK{=|ax)R5?bnkLYshte|bUv^KS>CfL2IaEHP0K9t$3X{)x`)Z~of zwP{@NXbxnOGORYMQv(qzqHg3lovpIktWYK==C#?H4Y7=t?Xd^=xB6`6?mecu4?;r` zId9)!wvBuri((8XRQFByhmWy6)75=#Sj0o78^byJ`A`G^4+(EfEaBNGIoP$#2*!&I zX`d}}#yIMbT*m=Rf}b`>1O9Md+fXVFID&l`BS=K;%N3z_Z!%wyO!Wg^e>1-!n_AD6z$a ze=W42KB?5ANkuEFPpWhTz2+uW1R||Rr@_aFf-=*u)!QF$8fU&o45uCJgzB;T)o>c3 z_x3GdH4VkN%zo&6@={n3%NvCbk+w~#sCNHoVw=9)%qsMQz}%67n>uT25Rr`k{{*6& z?q7Y=+FP%B<@GqW^2X(lzV+A>4_!09bBjkuHA{4@?QL|^J0k^>c4UNMS?wZUOlMVh zG~6fh9Gw^ZxN8K_#;d|l8jct|g8QGm{`mZx);<2zLge&AxX+$%dNB9dT-h)bz~Z3G->dXULd$I1?iYmxWFPpE~uKs>ne-J z#4iELP9{J_c;PA&0}SFC-%&Lt5%;17l~vl@EX?Hxci;ZN-4EXJzq^b}*#pOS z8;spq)mlLjW~|X2eDhq+4mkJQE*)`CkTVlJd)b{=y!+Z0SDyAixE*#Eo`1pJ3$9$c z^IX;tt09}YO95)x%v}hF@&daUD3`g*O0xVVl-UTMtF6~8e?eMo$P%{uwwfDq%M4?g zmYFRqPiD`-jt0bbSE3VRHg-H>rj80%kglBuKBwl9UJT&rr8)Xz5xNQ~SB`kHKM;gR@gA$OnXR>ARE^x)?x2v(QT8qzvxGibS|LRz&(?8U^Oig`)Jh z2T@CF-XV>v)#x&BHHME3@KAmwKRzJd>7Lf_dIMHB6H6cC_`7cC>X5yifP7+`RPu>mPXJ@0|B(<;&Nu zc=GArZr=tZMO#n3Wb5$F^KX4ki6rHIdVA}+>xVyHJ%7p`WV7q2>WC!_zh<4{vD=%C zJ#UZXZ|fxA>@KCT4l3?=v{&`kqsp3spEDaq!8Fo3NW<5j2`+BWL`L5dY06lcM47Ty zCQ+Dd`aV%69dj(wWHu(@=MhePI?U1hLqzk5h82}|(hC-HNiUElS~F|D?jr9{McmS& zOz6ETl0n^GKt_|yBMTNm2eBT<&I_Fxs=&obW~H)@RED)%*hwgyk!+TIbrD)+2COME zVAW)G!h9upF1BEq7&}P+=uLuz4omGpBGm>+N zm5!}i3Xsm2wCMX3y401Lw3L%UP@^{}#meg@71~T%y(!wF;fPerkkQ~MZ zlNRfJe{adh8wtC@NTkKzVA9IBHEE5_&34wPLRc}A);O88#v>z3ZpQhaQ?ui7MAGOu zvan-6uw3xk{D6;+&EO0R404&_aascWL-hxf7BSNRLFwQu*P)rT#tQypC3nl~X_yjI4)rg8FY{fH(lSar17@Q-&w0SarBp=8~rbqEtFRIl5#2-h~7 z7XBWAodqGA78szcM3~g_swJ6}T;2S^o_yXnJ6{MAnN2HsEwO1)fea+^44O@=-3%hg zXJ@dDP0P(-vrVgU2C-?4lTB-MGl)&Avl)zST6;2s8s{iy(DoIwV(Uh&rWph&Z3Z!F z?Q#a=ih$CXFW%@bh6tk;(n1dK z|ARPAU_GF9BOmOPLIgU%pU$dn1xQYG8Er)n4-2jWpu+;OWMzy{W8$&Kq$~^aDzFl4 z+UYInAvh8Vug?dhA#( zvIY#$z~MHQXhBQMj#Xnh@>P(02^Q!l*w6(kFvUu=0D-b2EkXa}Kuf01Wx2!N#etS_ zmOCUR;_TSS>ayJB33(}lXQ;%qSI-`{Fv)U97Zgj8*Lj&1G6X&mCuFF)5%IuV*jII%lAaW)zia+-4P(Dcolj6?9pd7{t6;IHsx? z)&coSHgPA)5{pi&*PWQC^X# zbOB|agvB4)jZpwz(*vhvK>rTbtyCXglWwGCBB7ejrU|d@d-PWBWo_srk4T4gcZ9L;`xySx<3e|n3?XY|oduce>?j5*=&ZsJ8=UEs zqfA{eVm$NNr@y;(!=_t?j(2ms{)Od_uU_=x$LnK@QYZ1u9aSA6SV`2`Ym3rwF_*)< zo4ULj=Gh1ZlaV2GKk*>`_28t>YWZ9g3ck!zRGF3}zGPNdlR5S{1oYB~v1( zP>00P`1}Kj-4f?x&leOC2uVytR?~2SkAgg>s}J@T0984%f!-QWDY7MRTP!GI1<%8| zm7BC{t_Bd~wi7IrzYb)Gljq0K(erAL@>`MO8o20BiE|1W10t)&lVs0_CdRs;0$+^~ z$3V|%5=_W(ffVQ@)QX&A1}%$*;El`-u{}@ev!xA4fb0-?OcjOryU<)4d<4+gi-${u z%Ml{mt)}Kfq#6Y+BppbI^YPsT)BFThaY6VSzFI*V1Q+~ga7Ur0fkNg?g;OHm`BXU= zRujVu)TOy))^wp`PIuN6WisL)Qj-dro6YNSrxm3O98Im$%(V2hr6zThdW-{R(+%(G z=JD*|q>3la98Nlg+eW?N&-vN@kekOln~IT?04+A}m^py>8SxHteJ@nE&+vb0E>i^rh8>geHJ7&7?kL1QV_tl+`KK=4_pF9+g_|q4D z`Mb+bTle4{u`GGryI(wY>KPwB_ZiRSx%%*q``)_u!x!)5kh9%J1$0(-$76mjh_g|* z&9Bv|z~=-7lQCXXRL!8#c~R%gkzP5az*7FMTH)^?uh=lmH#-O`%$(*`EB+mNO7U+e ziG%Rt1Zf}S%7VA^{a0Rdtw{$|z;lD+?yU6_UscrRek% z?Gg@yfvdqjD+w;6WbTOoH$g@t18!Z(6bnsV^{`csS74Fi_%ay{%XLq&GfWEB<{N@` zIeQUIl`ohc7_kKh<(FB?OyiL5unjX92I84a&^#DtZeFcRrbLUO%8>;1-6VAYopF&v*fTXFGn-Z@r5&tdt7qJ)g{<1 zTXHPJ4HgoY;RZ#u%|{0lHKRd!icXJzG2HkUffm#mA3og0E;$|2Ey++eTMw~L!%X4X z@r-G*BvP~(io_$3w6hxYs1bscObI@i1|6SW)=q?}TYT;d{x#;-+nc~0ms-z-?2K}) zUzo33kupbQ`h(dGB>15lHVYw(H%NEA+<#eVFInNJTEgOK&fIR6^@2=G9(YE6eQ8@P zbk@6e>zR2dENLHP4oV;+zm^$)&|c7iSP;BZx#B)(IQ15^6U(I&i(hvYt1zwB)=pYA zHepmTISMjW8F8REckH|{=ky$zyD}ZH#fYUVd&+j_K!sua5s%p(QLO0DjI>LmYG-vv zQqnrHU;K6?QEL5Lk6iKj%kRG&Ioa|3>t6WyvO8aX=f85YV~e(0qqu)?$1B%;a?;`rWDPr#+c(a5`|1lepYhh~$dJez zgZFM*x%%T@y>!l%gO1z-%-rRkKK_XZ=T4lc@mVQI# z2IxZ>Mw-0FwdECFSnBG>k`rL|a0Xb5@4{V=*4{vd!byU{+0sk>!7OG{ph6wIruYO)T_e)X1 zy=DB@;kqGbyB?LJt)3#oT0VZ;JnZgkqAx~RaO>c`ikQtVI1Ho+zZ7lt7*UTZFT0+V zUC(+Ln%?2sx{rxrGW1=T$`lxYY9|Y*6RD@EE+9L-Wqcsvrql~LBJ=3z%;H_L%T8+U zn0bu2ou?xo1cYuEPS?(=?#P2RqLaBZQ^>Bz+hN@u4frj8guMTqh%CDvZbvnDG}t#r z8tl){e&Y3WAG&?#6|qBh%ewonKjrpoU;Y9CM-JJaUGm&dFTHfdeBH~4cH!HPeSFpM z#tmV6BU-)+zlQuETX}<>)$JTRZn*%~Y31N+(6TpPdGERZ(+&0~Pyc+;YxjNr;eYN1 z+liCCqnb5Xrpf307kP{Jd~VAl#`0hP$fnb;-1yl;Uw0!N`qjGM-L`tk!f9@#*PQk8 zhZmps(Z$TNkoSpAA3yNfqVv!AhxW+pIpie*gm*irxMS8cBCG8P)pp5wI;pwi@qSVa z3Uxhg)tI_X)*oDX_6-j`v*Ge3|LaU|6?)U)Lu;-(>5i)&UB$tR%XObQd2y-k7oWNI zoTu-*_tRw%v?UZo%X=hDqdDPH|03B$YH9&8&+?vBQxgTT{RU=|9rB&RVeZ`pg*b~{ zM98RVacC>9YNxi;>K5ANJ@%obPxMRY9!|ecj%Zt0aIr(4`jJCo3q9;Q_Il;|pCa)0 zu?K?nv5>GLrA(Kl$Bl!mXPMff*Ekf^SC)nX#k_08R|1}gKVI7{tcB3u-y69&u6y}Ga!K!LaI#w27B5OZ=um;+A7B=eC#M;`SBfRv|} z$|A1bO_+Q+03A02mL@3vY;pqR@*bu| z-i71PW*8apTh(K(b^W}qM^=0dnMYo8{CDB$f-@QzuHG z#AlC7o9}a%OLB%uf*6f!74{iGtaq{#_{z$*}q-9;E{I1iWK zW~||r5G#%MO-mcc-4x3Ys5j#`idac8-O7-gIoGkX_?K08Jj(@vk|v3(kt=>_voE)FtQU#txDS0Ii8i_iJUbxKdYxaLmly(Od+A z1B37D;cBI_mT7JvxY>S!2?N1}`UI#3gZ|9m3R)0tx=`1Jny~|eCHhUixW&3Iab*kR z_s-%P_RS3D>z;Rqbl*QSIL_S)+fQPVue+1Fj{$!37vD3))~zV`R&CrQSs9rOUPX^T zFjz|5O?07qVG@NbiLf;GR6h4?H47cXvhf=hv6gxds6BM`i$h-JURu#x#gN2}W)PG| zP?4zlP+Pt-C-8j<%a!fgX;6hNTuoV6W9+eIs40kv;>kvF1n*|UXF;88dBFHrCAnEc zul#9|J^7iVZ?$1esIK0k4@!+w{2gv^WJUm{qBF6=^epsR!KU9 z`;3xwFwG2z{NV8nD^H|mVmdtFsIz#Q%`A&D6+JBRs8H3gRZh~BWigvm19n=Mj9>(_ z1L(JSnB$PO{E9h7?rA`A%@PpcnOqO;%PDS-@?K`yf}wFA9ZN3L_~iO5f=9vOMCk?5 z>B0@8ApVN^I^iXV&OSLQ@>Db+z&gA~fJ*Ql0-4~wf^34B0f-tQC5arLwc{ya{rCCV zcVO^6E*o44t0}rdKOI$DSe!qTt$_xdBe`s=KU(GU=rH$45Z4kIeu7v!!5h0Wd%WY7 zzy{54)$+Cyd|L?vEQEh#{B9lOwGL!%jh6u+0#;RC^0A@?ZGMGWvh0KEl~3)I zZmkfT2aQNGFb%6E7c)~fEq{wiZ?nV`Gw5VNq=78ZQhjgynxyi1(=bTs}m zU%X<~<~Q!%vIA4s0QcwKcj|2y-gD($-<|1&+`hbe(Z(y!8GcnK-cMw95hJwQ397!) z^bs(u1inIxEvsW^wTHo=fBc{?QwbqXqzST?xM<(FkU6^mC`OWrhZU4>CeTg=f!ugJc&U-J_mns(q%8MxcZzsHZtbf+-LJ-a0*;Qo(wHfwt@vZ zRxGTXbS7Wy?JAP$>X*>Y}AeF-g14R`lq}Da*I^D=Z4_2}zW2V#b6Y3Z5R$j2m zaF4_lcqR|dlpbvZHOa4?cS?K08V3hYF3^U-sL({>JDmqjL3=9SY0Wmn7z1v#Gqc@f zYvfY|SqUvo$d`dju9eCr1b9O0qd@s|9MYCY^tD`Y>WfdEcJ;>_l-G9(i}0g&)^1+^ z^vdNNge~iIC&@`VtGXj1{94}fKLtq?Vnear)A5^3LXc&c_qX2LVr z`Ot89s@#F-HR}5xrYE!MqkFGo;mJg#3Pkjba4jJ)iz2am5WlAInw$xhW~dkFLn8xW$iPgDJl(3Fq|0gf~zf;6Me^+&66JQ{G1 z1Rsftt0v8~U3N}cVh_r*|ogw}%S$#)U zcg*XTxZvJ=vaH1I6BQ10XM?lsQxl3 zvse#)n{hC~{k{FZ;ps+p4f4q(oR5qF z-aZHUF^`*Un#um&1b_e;C$pi{dqVDzE~0)xM!60<14#B1+HRvCtj9(L!DRFX1tD|N zOZF66_6IeeLQ4WU2KXhPLTkYm%ucg}V_V+hi%k7D!$(aqt4!u?%?1%F6DSGn;z1K~h0r^-jxVSRfP z%#2G*!q3n&>~;d4m}R1RkhjB+3W=KkNUq>4YW|PYOqatwb>AL)DC1+9CqjQ{bpp0_ zfAFf$?mKhc3+rCgX_wk>aq^{iz4XSVAKie%4=$ed_rV7n+Q3gAgyPG{_jaL&n<80HV~yo0>2=oj&iwyYlj0{3ZJ9WQg(rhm1ph|s9hpXWFOoz!r0Y4l_xIbK`>i)t9qnZc&&6u zpH;TpYc+HR8s*JIsl?4#IFeK9SM^wzBF3cdw$UnyZS6^?wtPjwFDHz(A(}pO`YM2F zIA<4gdV_0bFN5h3hVjhgA`Z8Kg(kaI2E@s}sSG~?;52O!;c1Y(A&azSV`%Wq6ohA< zEcEs!Tq=kCjqS`yu)Q2K@xEqK-he1IZG6UjRqZYZvuTSAaB|Ret9pD}<{9cX?~Hsk zflRF3-z285r^>lI)qv_j9plMU)KeIA=-H*RSaJK#Xl+^Cr_8M^aj1fjqLWh*S(=H6 z3N7}p4a-t*k<3dt&(K0{Fif0>`!5-*(1n(_U?j;EF#3vELB zOEzH|TGomo=%8i_Af_2KnCp0G*{0epkmRtKFj%2Dkz58#y_E61`~11jT=e?o%N~c( zNRhnq^$UOf=5-%EEklSj$~Mn7ORb* z-J_3+8BuNSXvZdGXcv~t&Z_Q6tavu>_hu&7k0e*+^8Zl z-K_t-5ev!Xczugdt&)g_=#E%+PKUs;PV`t|9OP0U_SbpgBA>cMjcTmnZ;=FydaZ?$ zYoS*!)LW<-ZNsxneH;d+-t9>%xcG1c7o9%9d5fHFe=I~Q+4+;S4;dsj1nL&|M`TeX zkCPi7pX*VGn`-YuOw5g15xA`Sy<)nYB;%?i8b>L^Fg)`^*y;e;$i z0vHt0QR|+^&J@2o-&6^`KuA#!sYl{Z`d1_=fJ50$qA+S5x?~`ERu&@&-D^I zNfDU~&PE+NWyxtGYCG)K8fPuJrDW;wfQ~l5nB}~oAbE!*Q7}=7_!6l)10=*gf#p*& zekXAB92_MmI4Onc+ZFpQuNloU%A|mw#SpSN?IrXtdFJ{j?_YV{N}_co^k;M0gBzn; zMIALYh;NtwV?(J4_58*s!6tV^X@1E57knoq6|nt@Q^+4iuO(J_O!aJftR>H7m{1@) z|1c~0P+m8MUs*(gVV-^Ffk?eC*o+-S-$3LPIS12*$NWd<-;Zv~CBLG%{g3&1_fL*X zF2`T~=i2TcE03S2?<9roK4>jVKWlxoS0!<8(r*CdvZbik2##8XG=PMln@xgU3`RgYhvSp zNfW;qoBX=_ALsT@Z$I381B5g0xZXeg4|3B^_;w#cPZ%5>oO2iy=IJ0KZ?4dSs!y`=A#{-*x(@VWiP zf}x1wJ%i}XzjDBP`L9yoZM;LCR`nP&e3(;@*Q&<~Ftw^b-I&(5;d%X}p2r_09!Rrr z`(qYjV$-nkc?vbA>t3QT9r2x8;*Wm6F@Ao@%kgvGy=x1Fnv*x**AK}fLA3pTegnSf z@kjK7e$bP2U99PLomhV2-2VT-{Nn8O`A0LYYx{qaXI$07oj)S)z~R=$&VNdOzWVp> zr-B^sT4p+A?g!E5U*rz2@|9oCrYNk;tL0)@H0MZ@c^YfB(-F(6Ss0A7up>!Pl_ZM<|;0cC?7INg?n^aB2nMo>QW+6wH0DpVc&Q?ktnc)sS=v!c|f|~ z8B*a$+NEZjL9u@@ur#ZvMO4ez8-HWGK>RnUgFrvoXF)@S1iEPt2qhCotL@`3j%%=y{ZYhFO!%$Bc&ffdEv*7EMLj!n7+}E~R!* z*VV${0Z7S(K6Xc&Jw;VnZ3PEt=DUZ2OpQW&dm}&68yMMKa9$}|j_?S4>@W=%{OHPL z?~Gw2p~K!Y%b0_c%0NqfvAm?m7{yRa^jhV;%S{F_6fNyfj6Lbk`ZdEP)OEH?>bj~> z<=AO#Sp|z@4G!{erW&0!yh_*J1B2^S?aez0P=wa`anL<4xleEW8K2hr%-GToN&`I3tmf$ECMN?0O~%pwz8pa7=LkBEyIPHk%~@YMm{)rEt+Dzo+%403<( z+JdmSG*#f~(hE}o+)M%*u(-_BwwJKy8(!Et^ORU{FGoWIK$5S7M8{#6M2`fpx-vid zO9=f<0)?hvdBM&T*9_VOaagxaP_17;cx3y=A#bb&@p%D|lHfb0c}Z(S`TCq8l2xw7 zCYvbrTRF(&%2{;T@}x6bd~vzPx*V6%da#MUmFj&n6wLoHdL)@uYZYk-^i7)A!gZ}m zN=nL2IjWaitLmbgn(8wgiXWwG+f}Q-Aob~s7>&BB359BOeMe+xY7U}OJW6>h zjV|`ZEUJNO#x*$Vi$$WO103iEGkob~)EddfP!a>O88NJznp>hWCP<_*=T)B8?jTCi zWmcy_ls;J0$HZSvM644%@bvCINh!XlyemcR)MC9od4g`(lf2Jxyje578+3??{|#@I zt{>WqtBP|gXA1z7?C4Tct{Xh9Y;vo8YHmkYtqTtqOawZ!#B52?UA7|l1OyrIJUM?# z(JfYZY0(Imm8_*i%rc>5(K;(|j5K8u;8+7Q+0IMWd3$3AcQ#178|sELC)H_Szbwx5 zR)_)EAah&w)3+Cfg=0&3-=;(aCRyrB(!$I-Uzirw7kTtG$4PWR$R^c1_P}7XuJ~!i zZGqH72B8tJto0>B5iSBKgH~-!Qkw9~ zIvrli${z2kuKZTfQc;1WAf8!5AWr5_=#{Q~N)xaCNjK8usRp|O{g$|2V=sK=Kb^M70(ZGSl zOt^4jVZ+2jDv+r{q_hkE65npfq0}n|*Oh;avQwF`kp`|-M#UEI?U2;1Q zwX`9rnEPtQ!J!=&KX=jBjwkR+Upc-eljm*l;x7 zqT|w9l`gd!3$T2};YU<=LEK;NQj)k)zRS;rf$u7k7|5I zt-N>Ap&H?g#<-=Ft{-Z5gsd$--`OjCUUW_AnCQNb9(i~~d_FEgXHg|2qZpl0k(dDl zw$jXim16Qmv^ouv^|Wur%`IR>zzd`ZWi=Hf7j(Mx$n8>e31d&#hbQ7IVtJkwW@h0W zE2vLZjH;&ti>QI8#Doc!>%KOUEsm6#YeS+szlqwijwnGbJ&87?*FQcQE&OY=%sZ-l?!&gOKLK487ATNqC^>NQ@t)zYKp11*qfnzzwQ&J{OXq8W1`Pi{&Im2; zoA#UQ%ogQSmE6syKQIkBiIt!!?9@sDNP9k70*A=3RXmV+2D+Y@jEb}!A2dD!S!JnZi7a04`t~!68VWU1Xf>UFDm7Kh3V1@d5dRPp$vWlULvVGE7r*)A9BBQ;q9-lTl9-J{%>usAPnf~E$>~i;pa<^p6TK3aSX~F zKAV!=-cwvClvPJeR4N54lMpUC}V zi{G2S<;@irJj*>Nq-lR02OUDTgWj1$l>yLic*k;qcmE^hJU+(VeV@x_PdtHuf|Rjn zGWD+5N%~8*#Vm$6ONdEy>xTQ)a~xdt5HkYIICd-HIB=gJ`F&5(FXA@I&W+~B=4d;! z*aUHfvt{3QPMJ3II0$yyZWa^LkPhl!MYa>I;Twn=ku=fH&p}3QXURpY+|Q7o+ds3? ziTr%r{X}_*p5;ZRGWsM&6n>KGCKPyb(9P%(p6e$;{KN52LV)96y>kb#UvT797BAb3 zg^(fCc{i54lSUhdGO-0h96Cm%ShVvC>vRRr*E6mqVuqt-u9SsD`rqh5>rFwEtX~-j zff`MKC*BqVFj#?}nt8Ex85R3DAE#liD~aWfMYr8gCLScHKOhNQraX-&rlN^SIV9{L zLA)3}Ib^FuEAFQ!+0UguzklP3kAwzcu47Mu)|q^g3mN|=mH@;{I6j4U(K{er(T6-? z{C#ExVZqpL_7(bMATkycho)(F5{n zP_%Xaf_1~Mt-NczE4qS@urKQAe4gf9BkYAVk29sPFB>YmqV$rEFOECK-U5wSrDPLG zMy=aTe3Kcuijb%qMz1oRe2h&~3*TrLWrBy@dF2~=b6vy_q;z;FNW=G&rM&yAXg>SL zM1z?)ocIQC;{M+F`fc9Zmumn%rtkIDzXmX1cq-gJCnKv$N1 z7$^sPiI2*hMo>XQXPBK96lbxC@>^xs%W@OUw(9CKf_t1=m#RL!0HcU_b}oJ6sFI}U z8sHHEdg`Gqr>sa6_g;}i<5*Qqf>iG~IYDxV(|y6>gcufi0@pPOgu5D-A9>is31)|# z4C*&45(q`a5i0zF5Njk~jk!+dldW~Eipm90DNk`1kW$y&DZ?>frsk#}X&iHEZWf*? z0xV|ZnKB3vmnR5Fdj|qU<>~3fnL+3TvJ~Hq&j2(fe%=? zsSb-yDwHhKD0ud=W82`xO5H1X*|{;Zi05!Tu z;zAT2-Y5T9Av!vX#+2Lq_3*&y2@Ka@j}=RWskUT=7`zl$=2Tw28EfD1j%&Y?nTmRZ_ldeR##b(YrE^Loc7^VW;|#%4z#*&A%`b<`8yIS12wsrOZfZ{g-KoR)+00eowwK zS4%?~-4m#qyC=;@RH5aG$n;Q;lkh3SIb!@WN;(4u;v4Q!rJ@7!ybgk(!=Op+mZ^x)8dF(e?f|vp zSPBsqt*jvdx8OLw4FbSU;`v|@%?wFAIc7+7Q`pIDHe+Wz6l1Ykrtp=+;d}z1V>QZG z?^sQtfz=qSn&1?3*c49jP#S%; zcop{&UT{j$EtrWU5}@Z$qY+;4BS=Pu+A4jw3F{541|yHqzbFFMV>-X%H(jBQv{bn* z0CNAt1SrFAWFct7Z;DxdQ=E$78J*KIeE5~je6;5`J&xZnAAeYW)76gOq?EH4-fL6T zGx8LraL=H0K7x=+XoNOsZi*~&86s*%W3o)Amx_()m{t&zo1U2I#3`S9#B?Brym%b5 zpyeetAns7F6f3M)5AQ0*Rpt;kfpL`zylLP+g@b%S7Q7e#p>?fr*pOB@%%0WnM1I=P z)Fu2UaUXgy|B(;Dp6ed|Q#bwgrtC$>YxjdA%>*819+RKG_Wb7$&vjavV#0M=o-}fu zNBaHr2uNbT0%t?2>n0(CJs9PIs4-asevDRk_@w?q-jm89tDk1h$i6#=P~wbVc^}Qr zmD;9pR%Dn%p_c!}USJBDABwSe1^U5Z$tqIBoDc%>#>_>PMJtUJ*}>*uFrj6z9ofmc za`305d4jOMZpS;vr&NPrVYUx=2ec24@Gv9&RFEeiphl(RB&4wSqGovcU=Ez+zckh~X#zgZDfEjM9Ywngjf4$!;)Oo99Be1iBzQ zE~F0|3(i|-Zqo}1Y!xM7u$}xb9=1Rm*nVvM6J)^{5eE%1z6`SbT*#s^H{y^LV+T&K zMfkIOWDVNP$zgjoCpy3w#cAZJnUPG*tbgfK!zkUnGy<3Ps8~ZGY{Nnn!rI~ylE?7T zF5P&UX$9KsrS~jDsZ;4a%TSx3<9kiD*g;Az>KGs`rLouo8P%vGOuNSb+cfXURk|u? z>=_1(JoS4<@zhOd96&WW-Vwe(L5f!w2rLrTj&G9+l&@1M+aF`2ae66q*GQZ|#HItB zc17Fct@MsIV3E7HqFlBjoq%Cr0f`E*6Ij0IP)wxUsHV6im6jI*AP7OQl zoLXavxoFr!7Ggj-g4ZnhA$bSc7b|g2MMPwLTcTM+=GveaEthJ+nQz00X1xn3-hDze^5XrMaV z(!g|zYs#jmK>R2PG#31Zky;0IXN)=>rv6rCO9!Y7wSZDO6vZ5hU|KLU2chl*lQl zpFUK=j22}iIeSiB((LqH{fMSURr2kFQ%X9e-O1P1%0{9!K0D`DsCH&7xum zggUZ?N3~TfrdSyq8T{dsm_ove{c5(iyf&F{ei(JdA61f%z{bO?0k7vlH*E>46$Xbr z(r-qJi7X5b4f(o}CsH>-wSVw(nXE_omfsw+Av6?D4oUS+KDo+ie?7 zJVP}v`uF&#O)$y-P!l7p^5>S{*{^=6-*7fXt0d)8f(j#D0aXBQB5nWTWKb1$OZuEr z#uqRi2}XuSdkf2H4xgE6yL_Yw&&(}$KSH|fsV=e^+gD*+w`?l7RgCgU(X?t*0BKZ) zpLzidypR;gnu_6ch~?@kkDF|0ig{~lOiOpEHAY-V+WDkXdqnp|r{aM$Jkst(_eg_E z9>rZ*y34M#c7(2I2uK-T^gOm-+mGR~z@jI(vyt1~gWOqLcJ~!ogdMolzLkwl%HShO z88KMyy}IdG?UAnE^FwQTDL<>UHkFu@^t1mGmYLrC6?`zgA>_(t+>31PjWxuOOebIW z+1b~9)ATR(LrsaEWD#H!9xt&zHD?H*f(8UoK{Em{gxt~8hM=CQHyaE0By zq4|!-l45Q=mIR;dIb-R{pz=}?hUU=-!-fpQny{DAq$p!=Fd74|#;du}XojFsu7$Ya z#`fB@md@oN%;ihqN-~sm=I|!Qg&F*KBrQx4B#6fAMF;5k>mZtxl%*dB+P~r6Lr`%D zX9GBTrelr{&8E;Fj2+EbND7^}EUi#FOYTc@_w+zWOnGT_?%#d7V4xv>>H=t6^^U7*xvEbs0y?zdS>56rWQ-zr|;+C-r z(?w#dZnmXp)F6kT=-;JIg%Z_Cx{}w|`Gq(?zG2qS zfGu=}5w9PL!g>*u+dfPOYi>%*Bxau^n4ueW6o;rMl_FkwXcNg?*98g9;^=va5Xgb( z%jG5Jv0l2Xm6yD+*DDWn{4+0+K=TLSCFA}myu?iLCLNgr*nXk@##nByU@J2Ru>CRz zu>G zWmrkZ2-0jY*Q&t09=BWlW4G&!=FvSK3V$+S%t)g!Li(u@((FGnA;$uW*?%%dNVEUc zjgVtTX;;qL`eSg(Dw6d2k1|aTTm!-Pw1wZ$L%xvqX1COSCrb$^fUV5BEu4YvVuvfl z_Pg)fC_tpNBJ4+X!&{QFM(Qsj5a{IWcQP_1h%@D%2NL4&fAWZvbx4fX+!;H(n64P9 zyG)a-i`-pJ>$^*mV%7-i+-C{mWIVytna(%ZQJ-(}K^WyS6PrUE>$V||8E_NB?<_+c zvKpinaXd%8qSWvU)g?1cia5NK8h&xOq)TX*hTks>67dY6%FmAme+3`xWkGWtb^rj|-b?#VYD_YZM` zqsn?7cZY2X6 zj*HOt{OH0D1cM2clNa0gtsBuQD=bx>JlDa@-dt^kmCCjyt`JRFeU8>z`IySuqy}=6 zT4Ug7V+s~vF6(`MsYeiWi~<-a5VrMeawYnqZgQ4MZQ<3 zH~S7?^rIYi#_gT)q-L@wK_R3BN1@>=hk$ffCgCUwQG4gOyCbO=ND`NuqufRD_&kC` z`M7~nF>N?W-ptOL5;ATa1Zq1k;yfwQ(rph6VT6hnzs0q3(MiC`D{q=eu)hD}H1e_$ z8^gKLcEiTPNZ6>o5=@woQYb8JWXhAU`e63%{*AtDOm(1XkE|t!ti29P<9yPgc=gm^ z3W=Lqk(FFcAcK%~$;l2`>w{wkK-*;GLR&Udx2!vkJPg>gNgB=tzj-)8ceZ=}`YOXy zd{?!=K*#1EtOF?&(OSf-LN4spn9OCVdXO&P3E&&a^=V#Mj=cli5i&9q{0?ksO6H(_ zpK`8GJMMOU3TA6L%p&ZZ%XH(WTJY9M(~)KnuEy#>YXeo)sWGlotJ-&Jgdy3MF>tph zj>T1X2|CYZP^Nu%m3tKsE+5Wzx8k~MC%UQTOm}yJQ#;4DTLgcMY_S-Q5%D z7F>6i+>`C@9zhp5A=BM;qwFqdus6`ff+*;28a;ILuDcxVBIv#{%I@wZbd^h&?hcI} zcgg4^=anl^R!zAQ5A5$<-m?v8ieU2sa<^*`cL+e_$nyY8-ysnsYb zL(z2?-YI0bV3gh6OX&8v?yes_bW080y?m72-Am{y?=r}+b@Y^>+jW;HUqScUQFeDP zq1)@ayK2p-aaXy~=qFng)!kc1+1aNn*P$&J?4Ic7bUhG{H@_ zG11&zCQ6v9Lv6U6V*yJ(Cr^@l(Mj%@Gg>8gXkUxujzwIOd+ZlB$$iY|BzNtfPNeuh z<=<^JjNR(H9|#$u5j6}6*pjU?8irSwZk>MdrE3v3>0h?KyJWsoA*g&LeRru|iOQAx z6Kz$({k2wDsm#ynyLZNg55$FuzWcD1kF7j^p6M4_Gk?~1>-z2!Uo8YD=6_r~vGC*m z}YnDu=98Eu_N=6xFPesToN7p=a%|418r>ya?HA_3wV9e*!zeJBL#RE1yWtgnvcmpQ^Y$-d7y&a30eQpZaZ!k(~yZfzgj zSt>a>s2M_JB+ePlNu=gRPijdj1EXBGRU973dL17Yb$pDummp(GRa7~3R5rUvaD zBXyOw6LZ$Q4u#As*DRS%bVt0mlIoFl)Z-V8l7)z0&L3}O=Eiq!eY>XRJO}y=yFQ_96if1`0wMbE5n~WRyN@J{6Bc!ZyE}}_0*(|Ke(i-Jy|9*)TVE(L zL**n|U?bRB0eMEbE(|K4DbFZRrp>MHYcopmf;b6`6zZH7{S3kZWhOz{pQe!Aeep{0 zmW*KgN_De}`QZW_0mc7JG$k zVhp%SA<-xfT$()V1QSO&jxCFenFSR46z{}awOSA7xAZzmI%(a8!Rz%eODO?nE`9&CY%Lgx{hV z*(?v5&OVNbNnUIB3NH{@qBiITZfSWr@Z0yQ-Z2!d^NyM8reUFxz+kNpsiJ6>)zgxK^;hLJ;B(|q2uz%v@!ML0h*uq{& zn1RwUpQUgE7Wx9+8w3svu29)aTF+YTm5XKWWv0@F$B(muWRl~?bvwQuxb zvZDw3VCTCVN!vUhg!5dA>$J|+gY0RspETuAXR^r~46e?pMF&w(@)xe2Bbo zVx9OW=04t>Xl+}{=##DO+Sl}L_U-CE;eOT0EbocoK4KGJ6HfJqU(qE=U)nEvKSs;a zvq0W{`ANrUK_>T1))=ixcQ3XXB-7%^Uj2dEF zmOaXXfB^!CM2r$1Vw5)oh!`L|4G$3zAs`}Z)QG5ns1XqnQTp?pYyBSkaUKbY1`07} z{~qhN9&^n(*L8qQc?VL7sMl!qzFR!qjW+jX zkSu1#fcNem-@cCT3)g}9LPQjP#+v)tN{vwV{+1EW>Cuz4Iwz4~Wc;uDkM zYnQj?x^??~B=d8Ro1_Pro6J2?Z&Yk~a}TQwDrT$5kXCm%_=hYx{)p|~3E8I$(dL=! zSz!_FN`%{;@P0^@mAE0mV#gTMLQi z{N6|t{=QnwhVF^)Pp~sdjwy#W`C1XL$*{;$OoKiwDq24}m(2Z??@BT?MTXPki&ggn zuVazlsw$Z!-~hsK09(ZEzDhf{UuOqwD^o#Uj+hhm6%=07S=tl(V*lQ9+qDTH(@+UG zGOX{JiKFyArpgWpCIRqrRkELM?xb^C5B<7Ospjk)l?rJViZ_+YgiWVXEpsZ>5~otV zudGrX^Oj2Gl&D#&RHn0$PERV-cqY(Wq+NTsq z4hc9*Afr?=QvkzvtR?ly=KNXfSo2v}y^b~Cttk?&cD9Z+CLL>Uw=SuF znSibEIzp=fSM(RDxX336h174 zDxb$(%}RKh&!&6IvMeQPdNr#>iS1Ie-qxXJjbv)pJlG48iqx!mnVO|%GpboEBKmaa zt6B4;X3c9;vm^?kX4y3Cn3}b)Tg{r62{9(yFX_~(#yhnt)U0-`3R+Ft>R^3twmo2R z9?Tv{n#|O!xAju9T3u>ZHyO{9nl&#mGM-mxThX>mx$@dp^m6tfPN8elws5kVw#EG} z)V7e!Wqr{?)uwF;r+DK`C;N7-W4xWG1=Oh>J+!ScX-v)ioVK-q#Sp=5?_9zy3vDKB zwpr)))3@c)NIYZBeW7ynD@maHIc;m7ouF;)D+vPi&LpWZuWjw;wJq*s0WgOsDGBw)SVnP#R(0(m7|+w&rh#wpA!t5RuVcAPxo1c|8nlKtDuc+d0~nEIEjN zGiY04BfYh)!t6^@<_s@^&aTw9?k}`0^rl>n#AetjCGOW-+uA?Vw*KKwtZl(;cD=T> z?+$BQ`xn~Qu|2e{?lr*l;$gQ2-rHgH;&ABC|3)fbM zL((fed_BtM%_q-Rj}h>Qc9MJFiwZ0ef}J z2)L|nEkCv0xfQL<9t)9-U>D8^boLg@>x174QYn)rNQ@6xM zdaGN-(Ijk%{u8NNUoF(F*Xi7vQQg|3%eh4|@ja3~PHgeUIk)WWS-GfpwR3CFD-w0* z&F9?erEYbv0bbo|7vj9S<=DQdTd?^qb!#~XUz%%FyA5oGn6+9QnZ;U&$E47#ZL&ZZ2%e1%Lb`hkI~0D)(>kU(zp| zC2okmW?jB$3j`aMlVU{Igm}5C<*R6L`6O;sF6VN25m91_4RpSWJ+oTOOR)y)8(xah zq)y|97S0GgUn1{Cf7wN$r?@Eg;%Ui6p{KYg=JT}VqR>+SGRD)Ai$YH^3GU6)+(i+m zdJ35L;VGuTEE>(Zby^E}T6R`gs-bv|;*B^Z^9X1pq=e!x>N;$283U1nm`v{!NuQ+Z zLno8byjDHHT3^VMdVsZlueK6c>*u#Uz;Za&_5f@B-fa&sH13lqEYi$nh&;r@A$eAs|h-HdbXV8a4o8{^z-u)r}`*>7RB$Mtc z2rmuUMViH&homI%*Q)sdB15TJ^TgC~WmaNccL@h_VLOpa!UR8JTZqLsL3{#v?M?2pP`Is%y1{3zigkv1Zl+g+4i`SE z$goD{tDrB-!(`M#!i?6Qw2&}6h}u|AAXGQnaH$PNhK@T~NSGpOM$JjFA{5`JzBO6& z+eJ~==n1|YknfW&Sj@I_Yu;|Ej&zaQ#V1J6I|-!Bil3TVZp1EHb8M$S#}lIpxr{(Tv+jd^xxYIhNx@Xx8{z zo3qq3ilq2(jsn^06eY4$foy6h3uK#5eZnHgmIzg4xe!+$RUn(cf*AZ2t}uTESMpZ` zviU1O=C253vnvJQH}`_kDUh`-B47lTr9d{YmpRElW4}aQtgP-?S*Xwr{z-J}cCE~M zu~wk07Hf0e@~gEX3ldBdO;#HK`?qJYws=Y>UIpSK;2P1_j8{xM<0o)<5^N#cfrU&;gicTWM&Xq!NL4k#)!j z1QG59HxY%1XMuL@lVL2E!1+mSTsX07OtUm4Ll*V z+Jz;q+GEm(C4MK0qt47Gv3m#TSQ?t4L5O4^7S~2vE}?uKolK0NPXZV89=2FL0d-D+ z-5yfnsl!?V=SV)^}vgkR#i9FB!Q@^36^N_1}aFI3MbLZ>ERWqG%evJQce#g-WzKdJ}qTV_gtWX0RXfULo;K;7A5 zXl*JC%{L+3SP2KG1tN`=fM|rynbuH8M(BcU5B1tMQ5dlYj)XN6tkT@+2e@Yy^jNFI zY1ZlxHsn-aWdXAs|G8qNJe(|pw!1Ma!@}s!1@vFhJSzJOEBuZKb&Dc{k|c+;%7?z3 z?XeojZzLP#H>}Kd$R8YR5V_y2%v~IVnqia(P^#QUt`!(@Gy$`LV#)ojhbgk?P z0IR?c(91yEMx{;-O-WRv1>U6aL!u9GiP(ZkX0mbPI!&BBAWs2XYtv27eOC=@d+qIK@`2J8R3=Wj^2vLi_|5mu_@8W3?!i=;-TzBJ-pL_258-I2kpb-@BaNrgcPyPMYA6#(n=H={> z77$n7eEHd*+xp{E{=0*rWv*zO!o=-;2C9jJDp|K?fU1#X4pqny0@azfIv*-vjpx=~ zX|9yvT+f8mL3;J~@6&X{Bhuwr%4QaPrJ5-AcjYGwcRY`>GOt9D1g^IUX(dwRCn_>! zAVotARiHOEMy5`GbPJD2bKj7ZDq5tUt?YP%33!V8Krb5p3-WJckkxpwM4A%p^USlo zTxs4((RsQ*I#CjER{4&zH0;^Hz1PYAAOyZO~e#Xw)sAwkLEu>M6*`-p+U`-C@ls?v!5} zvCZ+Pq3ff9ZK57_Slb2^!n3{ zn~;-p;^qx!KlS6UUG?LC6lO&eXMgpEKVEy=?Wb)5#kKU4>`%<^N%t*Chnph3)3F%c zEt#CS=ZVigz5L=Qul=o~3cM5(tGC>_{K6l8Z`I$4p$MCGb~kX;vCu~W8h)1PM`*9a z2lnI$-Xj-;dYI?16kYOYp|bfD>|4ZOtpWH3Q_0V$%LVF_fG%e977xdDD5NqVWDsLm zT2R#le<6sU8lZ<7KmCm8Gt@aO_BMUNUJNugoNq5w+rd_kt`1cOPwGhwWe;~5JQwQT zk^<$``*c8k8O?_jfgREtfj|}TV_AeiR!avYVrKJ>buI@2{j^-3^x6X)u}hHotkZWEGQS8N8H@~>pZdu;4_|%m!x#Ol!(4Fr+0&oA^P87!{{8Pg zdV|bBT)48^BJ(e%Lgw`@P3@Z(nW29{?mt1S(lRj_YlnVZKp5^EJ;<||kEJM4Ryge`~t`fxn>3zt0% zE-P!3y-^KF2TDhu-zU1y)Ic4^T@1z252>XSZN#oEoFEeNCg`BRl>mhhCVh?@M2_tamh;z5HKFFaHvrFA6iUDqFX0A)({iEvk;%JssC>((K-?{k*BB|AQW4 zzyw;Y=DGAWv)QzfQJD5#&l}Ee~vTl>-CL zQT5|PUUfsLrT;<+S9ZW^qoQgvPQ#{7F-Zn&&fH8fG?O9wc|NG6kfvpaqvLLZn9_bX zxr|s~u;PBIBv0h`OjVJMs5Di6&W1iwiK^Jl)CS*7M1Pm3uXh>rdMAWCBbx zY@GI71aO~Gi7YJXmGvafB}Hl}2p?*a&qTWOOu#vh~dw%Dxp0r#VN)AY1x6U&9;EWG8PgD~>;QmE|WkV0kGEa&HTzt#DN=B~a&=2}5%3$ANdI-z9+_@4_ z(?iM62`L~Om`o?-9_05u9 zYK1eySDOYVYwPq17#~fmegPS&Uo3t83*z(NQSNC(H`QkaByz2CCfA8fX4Myp? zK`>MZp&?4!veqCoNT75F*oX)3vNSYVr$nGZ0)XsydPL~*Qw8K`pp?w zE=1nj9zE;I?|u2wA33u{s6;QFEQg%mjt>?rr;`EhYMygMmSKC@TRbNix*-ZHnIEvQ zr^5}y#`T+6za*P1#&m9$>m|~;r?Fg{rd~-m&N;qWiDg0$8xN9`3{{h7sBLJy_kRF2 z$eh}y@~~AvEgbH&peaq_rX?$GWli;X0ywA}xvFuwb+Ae@N|atI;%ZfOc3rG|DDUBC ztrn?b*1^1gRT@K-O9B^b8BxHAT0>utr-a$rpZ73(PX@EUon41!1+!>bv`pYSG>z#L z*Q}h()OKooTG;VP3IF~ z*e6+@j@Mf;q2-Z;a}O&N}pHK8Q5cF<-T#7mU;bjEj{jJ(9T^vB~Z20rMhl4^a?@TqAamhAR;} zyO-dL2UbEV0jVHrrE%U@7`THrjyl0i1eOGiQ{?0~z*lH^F+y;N%_^#^;!q8#4t_KF zi*C3_d3Ws4Rx6eF$lN>jDDRYHIQJnoF4u3oo6H&5UFVcwk&`na;pwBJ+!JMdzK8AAYVZP) z2Z^HPsWzM)NW$TWYPCtL9VFJgGA$TZI?u zq_&_1E*xnXqD#jy`aH*AD}y36hr}e{BkfE=y(i)AyN2!TuJ*v%I*3%sJclSy*G?p- zDf@nu3@?q)_T+3t9Fzqans%C&Kb_6)h)iO<2BkbWY)v;hrTxHWe6b7W^UX*j}u%i67Nea{w81>X1wP9J=er zGToaC);t%)_a}gOzku@u;$;x;sskYcrWB3ld6_IH+?UuL2WC`r9xd_%hA<8BJ9;3Q zZF>k%ter`5L(qW58m*Q_gtQzj-CrO zw`P9rp{uJEnd}CNrMMI^Bzn<*HWmpV!d*p*fPkz4OpMlaLq`{0P?6_Bs|ItINhfd+ zV?6_6J!BjfThd#qCG~JJK#pcGP&m?5z!$7%SbLqs8wSOC26+hUsls~t5~Z#NP3vMk zbzS7FXIOW~CBq9^M1~(pJiUaKx@SH0ob|9R6FwoGC(0B9MK#RE%}2>O`33NsiS1Xu`OB>+j90Yg)#{- zF;qH!C7CZ@V|0nRE)cZ7QJI3>`CT@mD+QUPn1Igb=EqI!H$KJMUORjEQ5|6+Y^<6o64 zlA+1;~$(HaBJLJzAC~UGQ>x;DkBbAk2DmQ;oW28`Q)LjE^$usf!Lf(? z)f$$$)5Z0gXjaB4Dz~sfv^(uZ5&Ug$4MB@yiL3$rw8xK$rcuKOO!9zpTztS}${MJs z(-&M+h$KQEOscrYaxf{uqiw;YFiVF@;EA!DqgYXh@Iz20tWYtOo3;IT-27q0_BqWQMxd#iRdZkWw{SBTg} zFMMNpkdCCUTqyU#+jqdNuqo(55+5S=xr_3sn!BB43CUvOnrnXYoi9Cp-ud@>AHzML zx%`zs-u1v|PsMVK3MFg2oDBJ~&L#^uLQ?1#ui>P-G+M@DYR5`W2e}|vrZu%$=$8e{ z*&^2NbNJ%c7k+W}?@xa8EVF~>wth}ZmQ&&K)9%ll3RYK?Ugmr+GVp)<_D^iN_K|Bo z_7wnQ`hx|bi6?fL&}Xopmr?uEo4iw)aO zZmI1%l2duyQSzs^wVwiSE@cbk8bcJQlV$aTr>nSR%j6d#k<9v{jj zDH)dex|csi;K)(B`SAt6UA}GG)4XH9;l%Q5pCT5R-7?zb^|b0<8m$K3OH09H+;*&; zwieidOmH%JMjf|BIwSQ%oIXa+l;1_1+e$UQa6Jr)YsaBclEzCMdNlz^Ig4f~=AG92 zb{3t*v}?neSo9CiFcu>geNV<>Dib%HdEu?U*!1KD7_Y^le{9- z=$aqF)EruhpoGgfB>_%}ML(7+-}me$Jo*=4BvU9J{i{tIKK;yBzx~%lC;nU~6DR}hPS6_9@m%n%OCuhl`uPIpc$!9*e?!iAkv;3>T8lM%` z1Vgu!4ChPA9NMuZ@k(((F*xb^ZLFnxvyA5~e7jgm`5}>56RXc6ek`DC(PZP94K$2M z7juA!{w!`0H5MzXKh}l^qVT+-TkjOC$M3jp29Qr!Ob8hCJ(F(5{gY zy+ME>FDWyie4F9GIrDyhiPeda=kIMKw9e)YZ0Ypy=|nmdhm`K{~l)JLH=B<_q^_ zO_BXZOosXSA%x$u;dtIx#Sa zAL62LUD|#j|tXen}Q0SDEe ze{nk_?hGcJ=eXl#AOCvB9f{EscRc-Zvjm6{pXTK5*B5IPyM`XQ9huB6r_L~%UR*RZ zOE$bSf(iWs^tEE#WTMfyZ*@;JZjUQk70Na>Eequh+N{uTMH8m0%fj|s%Yxg7^d~k8 zV}_H+|JhYn^$So-f{DN>ViO+QnZu_vMwZY}sT=QuGEl z1poN172nwWqb+xGei`~lCYVoY2mWd%jYks~|Mu3c*Ij$>8Z2^e*%-=f?=2TrZXcb| zg@v(1yy~G(<-95v&E8-xtPA2W&(S6KRqTwY=r9O6crNuLjRw!59E*+5U4j|FJ;pes zw@chl!jCq?%U9O;!sm1A(Ge}_OYt&HKRD~i4w+Us%DRGOS83FGB$qq%)2){cj>A#;FVK285NDU zBL*Zvj{k3mA-ixYudc)uf**Q@853KV1+ z`J@P;dloK%d!9+mqDJ;XW1twuJXzVbEj0`6!%2T!+LxvI=l(kYudSq zk3&fx2q;i)a*zjc6j`-bHV-D+FeJd2*6fRyO{-2*k~(t_wsuLk6up)0i^i>n1ATxe z1gbbMxBSESsx1J>p3qAdGY_DTT z3QG-aBwzslBuZ9Fcta; z{E0jm%s*wjo*mfD!mOd??=7YSUw!tz6C@RZTlPqP2=)+ws#zR-Vj-n`v8bi!4>#l} z8*(MxLt~=ndi2_B43wxUxR?h5*K?Uav+a=!N&%T6vz_HJucY&A*ikxuJo7C|rUMm> zoeF`U79R}=<{pMu?nGG7m7)*8;usH$b_}_-5|x6c%9|5}Gz$0!Vq?>D4N%9~xn?ux zlmsvs`Q02^Kun26FNnXeU3yj72;Q!pN^Xyd@(t z3vVf6U2u|SN=@j)Ta3|nkY5?Q#Ot)&6ifjRh-Y~8zRVQBFzZfbG8u9k)NOcRR=;>= ze^Jl0Re)P1o|#p~TqVMPP1>T_><@^AuW_vPHf(IYNBrF(EuaHo2-+fybt>-i^vnjX zQ{@*(2hva2@7zC=fveL=L3rhk7`WK*TF2fF;9+}aC{vgkI+87l4ToquXT$7eXWsP8 zDc^ebGIGJm3iI@%pTGVKTQ}TwoVDd+*IJz>F5>XyYgl{6*E7qLY|A`Z?ViZg^FXHE zge70Y_U@M*a1EVOG=v1DhF)H2O}E+7qKRn@c00qy<@ z^uAuuc#i6?hsM1b``VL@f)a>nj-#pTiiUD~`Rr(%C~@cuzEf<9pY5L6oyl=_+MZd$ zC&X{>n2zl{nDN_a;@VSg`{G$7TwP_FV>EHo%P%~4)lRBir{x(@FC)_5s2`?!0VNTU+MwNzczI!_LmTb$;OXN z@)2U%jxGXDC}lepy%?ub5LxAuf{S6kvy-N=wu|9vx-7%d9FiL<@)U zwPc!fXDwBQ!>AUgLlgTyjaQfvq8u^^PM65URY}o^&P9$d>Oz>-eu_3F3hlPY6BaGg zFwncb9BrMf=AyK9QX7FZRQBqYGd!V=Wm>DHcgh56%l(uI)Y8M`Kh(((OjB8fooRql z4nrsM^D$#1`$(ZE*x0nqt9@*k5z2~!jZK5VqT%%P83qVceUqvuPiJkL9J4XmCddrx zs!tP-^}_~=8rL~cw0EkKb|4nWB(wj-?d8n&JDXNEH`6D}x@GzLsVW(9-lotkj1+lB zTt@}%f29EgBmIHxDy{Xg1%cK_(-rF^k7KDpsRJf+ad<8df@a8`OIP4xD`1DZwHN5~ z1=d-Cx!pC?z!ApjGOk(R%4m9r6&~y;{LY|GQD{&UNeJ_>ejH&!Wo#YOSB)#=jBSQW z=UZ>eJR$Je?wvr}VAvf)x7o!RQpTRJ*G@><6#T;@hoRsD1CE`uLpT#iX<=G9!FF6y zUa+{~#!bM&Zc0PdiJi{6HJUy-6)>C8BPCa1?G1bunjjI(E9YX znw(t-Eg3CxXaQM+7LYY~ft5MDf*f7|NMB41uVF@FufNn2oXincp=k@070e_YdN2y} zO%mJ6R%Vw|6^@_?`Zxh`=0uoQ#-p{r{XTHBgo<%`r}BkpOC_UfOkTTUX`FC%nU-Py zbdEh8)0Z1{u0=D@#NxjZCpk}Y`P_)HFEbv3)*?2MPHvD30Vtej_l$; zE3ed0K$$lBoM|W@*H^O}${T{BejXKmn^J}Xf$N{sNYt-zjqj^YyXIf5TgKFhd-nh)ovlY9>58A!Q=AF~~m$YfPylerBkx;`WA`iIaCW^0E{o{1mxBvpU*pW10lJ*yQkbge5> zg4`&9b*KWNwrV3$5DLfPYS`+2a~ljzq|;zmHc)T}j&d*i6F*~0YAe1`J=%W$m8=f# z>c4Vurn`Etj{*)hKWgYOcoJy(H|8r@~e5+x29oXW8OCcaF{XCc) z4+x-qx8DD6WB}pke`Qx~l>QVczLGxRdKaj7Kd>ivm7aXdp8O|oKX%Ri#nRxtiIOG2 z>$T*^Y4Yx27H)VS1ClGC%iSm@<6b9r08Y;W^4a`1MxfcOiRSC_Lh@Amj>VyUx#` z*_E|sYQrr1fR~7(brl`8G-xs!)R#y;)S_elSOJ@NWoBc30=hvln|43p0lABL#6Evb zHfGR3#r`6D#%yQL{!{kMWel-$o0t%rIxlP6X5M4y818bCoGYL1QT)X33_i*a{YKf= z>iD#MXQ*aLr&qAPZ!IVv5xsFbg% zv_lu(Mn(>t9BJi)wr#xT$g?wZ2K%o%)X|zkc$-Mb?6k^ce6R!thrc`_B3uFu^v;aI z6y!kiLBbT$!Y}7K>DNb?>5E7M2 zJOc-eL^@hqXUCj;%%q5jdb9>~p|$g*c<7v6YYT<;tWAuIoVa-G0nzrtr_u{Pk%JG! z?{XX%eCWSRiy=RuGe`j#C7;Ov!yruiH#Tm=5u{~=0Jn-nkb(N z&DGp$LnjUjZwlpQufm7IAy-$>g27a13GXUMb5OV;q`$_VlhA*l3?q8a5>D6Y5AQ8) zin19+WGvd~G8VC7!OyMJ29Fv^zAYh6wKPN$69{M6cEAv2G02BFkoMs$rCauH+9Ar1 z&Je5SHWK%%b7blgjX*c*QboQKgD;B|Y9LrB#oU`m*vU`ogu=)&sz3wEG!$qMI`fEf zD~N8$_-%D5L_pRIX@{^md=H>QPuze=AONAtWfwsvKt)u;IAiA{7E`oLNT#h@LZjT( z6G2iA|IyU%y<7s~g;G$1p-Zd1$ib$>lf>xpbk(Qw@wirH!l1JD#6w1Q?Ku&QE`Wi; zFEU?qB)ZU|=n2AHhej8OL5y#qfhWRu%}sxAy2ykXvM&h?@iObL!w#+eU_cemx6uXY zr3_rGF*a{CA&p8FbU|d!(?U<-ke_^J#37Bn)BCCZ39ZX?(eLPjP8<|IWpu&X=;(sF z)`yNTlz4$oQf8}iz^irs`Y#|1WfD>N34JG14(|o{M9JTUg-<)efKiJ9sMiLN{){jx z8l$)bWAs_Tpl`+qfv7Z9(nd}g_HL^2`R^(kqhrRXR`ie1CWoyVwX$tmcwJ1~T5Zy$ zi!kdBEG585iyUH^X4oOWX>e0w>6a^!@)~>F5sO+$BJ~n4T$1HG!_)M=&6=D4DOS0u zu+>(%0$W*UKr*ebw%QrinnY(7K`{d(;Ash$Ni4WUOkyT+OVOtm&oZ}=*#$Whh#AvB zw1HV?C-=yjSTp;q&X!h%Y&*m>i`19ZmNtvpv|dt(APC2T6q6teWOfdbcn-*s#Uy}P zCK2bxNHc13b45A(=uQI!b_Q zB^zUWbk*pXWTwjoro%gpT0ZDz((aRt=XF*OS{PjS)sUJ`FuljRt!m5cnC3 z%#?gjYKP<_cA$@bP{vwCA@mVqAij?onq}qa1ssUl!S{I3Aurh}#4giVt)1^d9}*FT zL5NLeXdi_Sn2<0H>o-Oq8lNE;2R=u|xzSg1h_PIUqI)@2vrH(M&N|MY0DdJB%rGH? zzvik1epzss!`3v556cj%9{{WSTH-7|EHf%=Qj;OyghFDH!Td(5lfMC{slhFW0I{r= z!j1FrCnZ?6W3Xw+FS@ldo`K6{>=3!CM>Wn_b~q+v*GVWIRqNRpx4#yvLt!fH>rF_r zHSMH%c}zhn{jg#_(dzBuRBDQE68AnPGX3^imBJg%cw+f3n_jaEdrRF>W3n1dBmW6)>HiYY~3+c>liC{&Pg=m zO8rW@H~hfo{&_zTH`j&`Kse_$dJgZ(d`k8NGLf+A$i(zTDQXDE8I?FKt*;;(r=s;0 zlm*@84J-lOUD4LCYjRvqthUyOdjdBVNwns;TXbV(CejmhVsW%h^uS;8((188b?o~9 z>`ClXQ*A3!674I9D?12KfuLf|?v0dCuKIxu=V?kSWz(`$RZHZ-Avt_+2epvNBN*CU zc6mJH{LfI?#LHLR@#?MjT=l})ewW8}zkKoXt#@B??bXg7{RZFVasB2ypZLb=HD~^n zrg7$79$zo~@>k#b@P_Z)fA44Cr^$urrwad>VcYYYFWJxCVWi`u3z@OsX+W&wh#MTR zBV8Oe;#Oib2D3Gh)Hmf5O{LSsPlRY#4=~*(8;yOWttd0`7R%qA;G< zPQe5bLYk~Bp0vv%Nua!brcRIpo0QGFmcIB|ltwv(YU#rc`3_BL6QB6ut>3)wl*>N5 z3HGss`^)Zs=CT)`xcG_%N&-|%A8{oU-hB1RJAU??)vLGZ(2OzezxJc&@4fk|PpO(eZ+%{AUPf zN^n-|OnioPXP^8d%ec?1V?ONs09T-wC)U}%S*UQx?yj1J71`0dwJb}8W}%b|L6cC* zPoYWJTuj1w&pdL+Dd%q8@&MDNN!aw-87uGp&H6hvDZBkFoKeaQQ{Nb11`OZ04xePBkA%Nvm62fe8K1Xo{y(nTs z1S7#l0DxvZW9y=goFXWgaiVtOIBmPw(k>wgORZ2#uPP?v8^vUtcHfhmUp(cZYi|X} zqKMD^;Adw&cgN4Zc`f&ECX!fRDNZ^rk|mW%Vp^iGlj_7DAGvJPqc{EW z+y5*qsZLzE{*%{VwPEGvw+l(C>EjvERwu4G|Gd|hKmFXZw;0h@Cm#In$=5z~+i92A z#5VDXY4O7LA)2igi&r&YysDk+RJAitCnMB4g%;+QC2TuB-DlNkR(ZZ9hEzLOGMSIF z%y4aanaWF9liNi`T0^my6e@$uXk@sfg1>t{5$2+Kirc2AyUv*5Mm-onHzGPyZF<$uk=#;w_QnD6TW}l<$qXz z&a3Bu0n%fC`rCE4Z28PLA5}Wlk{T@5yh+O271)n|r$veM!$>!hdAk8bG6C(EYJj!PK zwBcQ%hOx6!>)EffIjN=JE!MN|e}2`AmwfHJ8~(r~i1r@(ePb+%o*pCfoK1V#66Xp<|``KiX1|P2c+# zC?t+IY;Ao_L1eroi1Zy%#TBSg0J$uEksLoE9)7|E=o1lbSPu!dQzz*HH~p;v+~^8k zz(xl%&}nv(gDOWau&eOs1(@s*e#=8NA7B&ao9c>CBx|won-kA zHvf&3m{-!pyds775Po++;Nn^c7%)f^HDGZr=I|$gGQY=zsk7hm`;HhJO_X{>y>56! zK}6{@8ugr5FjQm+8#Jo;Eb}phBh^X}Rw5l0nH!6{`)bEH7I7*wl*QRrlogojijxfK zJ$ab4wFB6MGXy^|3Pn-@9S;qIP9FN?cAfyD{JlXZ5Alcu?y|p@#))o{#hXARVrmuzN3DHKXalCFrOog83N1ulaYzDANl>B zCrTS- zPy8sQYNBF(A?ZFSn@^>BC?}a?BttJ%tB%L?PWqLV8)E(nx*6!8n}H6x z8JL!C28?bg^nJQ zaN-+Je&w;NZh7pkbtf$imT-T{gQtDsnqObL`4Lv}aqeGTb<2-8pZl4g{>#!J;r8;! zfAXtKzxU}i$1V*>T;MqM*d)TkR-FxQe3{gRFl8kT#bGJ;v^yDv7$w4WZP||D2`Q4= zg2v4^*;f%x~ne#*!|6=!CKv4buILD_c>UNy--`E$x@3JPlIO)6kpN8*7f+ebX zV$&6$zx1YaSN!fE2gC=Szv78A&)s(EDGWzId}8hQEY^yMC##}Xw7^}i)}v?v_p%})Bq<>PJ<^_MgZg6Y zV{l{(i!VJ;fkmzW?Q2>Va>qMng!@s#b`R$_>qq03FZ*7sjF0t^sIPiBGnh>bm6??KMfjnQOdiybX({n|ib zo9gw9T^-%XOlX&^sf~agqeVn4Aws(uILbmRx`s3$CidS*Zgn;MJ3HIM65AvR;NhNC><-X?ME`B@Ql5mDH>S9hDfJ>Y41;6nqZ5! z!CbAcf%>kpQaZZ(Z{N!*ja-b_UsP{(c22f5HHCO1aWJgJ!T@6}xID_l{|K$!KQcKF zNv8A&TaNgIiy%}v1R=UhWQXl*U>i-ej1JeXKo3&hmVcXMCwoM*aTcyg{N&+TU`>D!_RT-7O5V+Kw+#1{b`NE zp?QVwz`vsxaNi{JlkIoVCh(-O@e$@+imTuACY4;D)YD~z_e=57mwyAsRQb5ArsJCR zq^~&;6K-3sDx9h+)6fXPIZi{v1HvA<0Y)DypAI8u$n3j6S_u&-^j=!Dedde!F_w!I z%w7xz&juMAw+7cDD^#*H0LaWE4UcD9Ljcp_eo1l9PTqc^teyUs+Jk!LlmVNS+_oq7W-&B2@&0pC zNAc$&7QRcPe6L#SivC)@K?NA!AGw4MTyBn-2Yw%lSl`%yZ*`UnvWeL?z){dhkb(ml z7zQ&i3D+$7NF_jb}Y@N(~I7*hqs4p%YGhAW@~RUHyN6VV|3d0M}maJE&y z%;y+C_`pZ`VO3O)12*5(`2m6Y`SFC#5)jl$X5|Q3`$Ydb8F<$TB#%OkLk;TW5y}kV z%9gI!KIflVz6h}dNXI{ev#HW5mD0GFbPvWux`9f@WcD*|F`8ca!+Vzp=^UY3De=xw z_WG>*?&8XG)4 zNZ09n>LM#nnh3ffC2$4Y-u~`DW-!RuVOP#BHWi09!K?-V2TZQ0w4er;Q5LEJm$i$5 z`2;|L`$9eMowZ9W2`G%FQ)QvjDwpYyB$>)!y6Gx$l`fEfdrmJH7A$3|D}!=N(=jp- z_|$9t*fN<>U~b8XAdR-^ML%ZOkO174Ic=>KHsPg&3o~Udx^(uLi{weqXJJIMz?``` zARk+v32Zo@1I%YCKlL2EYk0Um(qkwac4#OYXFrsY@=)k}X()6j9|{=a(aD#eZYV?b z;T}V|e}{(h(CmjYTpo(;)XZlEV$6p!kPn3%&@;`-K)v2$C|h=DC|hSglzMq6bf7dV z>|@S{(w7fKD%}hS)>lW^>7tcwJ2aFRXFnA3by(NLmWBu0hQbP*52cz9MOx|%L#fvB zZgdT0h4G{9CHs~7s$k92B}^PF4+WGe%?io>^P$A~P~gfl4JEFVYQJkJYj$WT7tMYs z1LdKZpp(-I%ThiR=3#r%$l+1z8p^sI8p`_F52e366x-!*3usa-i9RP@kPl|&C6SR# zyCj+vG~Jp>cFh@TkZd$<4HA^5Eg<=6+5!@*rY*3YEB|jx$?y~&7%eiLI$P1TIxj?7 zXh<}P)8qsxIk;WZ5CQ8ftPepm(5Wc&iK`SVNxTe%i6W)UYV6Fc!i>>rm)3|1?Y^icV%v6_57ja6gTq{UV#wZW6aF<^C$xU#F zd(?M{BKWOt(i1W~TE8iu(!t{z&&jsH=)#>-4|JryIPfOy(+q|#4@vDwC-F=MfGub| zDT!5}r>BRSl_PROprn5wj0Y1?OW(B{gu_npoW9!EIFTvR%0DM9S@Hct(|k|$m&TLK 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⩽+rJUFO$@a5@D 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